CSS: <a> 标签在使用伪元素后被禁用
CSS: <a> tags disabled after using pseudo elements
我正在做一个 CSS 练习,其中将克隆 BBC 的旧站点。最初的问题是 #topmenu li 的白色底部边框看起来不稳定(我将这段代码作为评论包含在下面的页面中)
已通过使用伪元素添加右红色边框解决了这个问题。但是,锚标记已被禁用。我认为这是由于红色边框的 "absolute" 位置造成的,但如果没有绝对位置,我无法让菜单按应有的方式显示。现在,它看起来像我想要的那样,但顶部菜单链接不再有效:http://jsbin.com/poginowibe/1/edit?output
关于如何解决这个问题有什么想法吗?任何帮助将不胜感激。
/* 这是原代码,当白底边框出现怪异时 */
#topmenudiv li {
list-style: none;
height: 100%;
padding: 14px 15px 11px 15px;
border-right: 1px solid #990800;
float: left;
position: relative;
z-index: 1;
}
#topmenudiv li:hover {
color: #ffffff;
text-decoration: none;
padding: 14px 15px 8px 15px;
border-bottom: 3px solid #FFFFFF;
outline: 0;
}
/* 这是修复了不稳定的外观但禁用了标签后的代码 */
#topmenudiv li {
list-style: none;
height: 100%;
padding: 14px 15px 11px 15px;
float: left;
position: relative;
z-index: 1;
}
#topmenudiv li:hover {
color: #ffffff;
text-decoration: none;
padding: 14px 15px 8px 15px;
border-bottom: 3px solid #FFFFFF;
outline: 0;
}
#topmenudiv li::after {
content: "";
position: absolute;
bottom: 0; top: 0; left: 0; right: 0;
border-right: 1px solid #990800;
}
通过对 Joerg 的代码进行一些调整,我终于能够让它工作了!
#topmenudiv ul {
margin-top: 0px;
padding: 0;
}
#topmenudiv li {
list-style: none;
height: 38px;
line-height: 40px;
float: left;
position: relative;
z-index: 3;
}
#topmenudiv li:hover {
color: #ffffff;
text-decoration: none;
border-bottom: 3px solid #FFFFFF;
outline: 0;
}
#topmenudiv li a {
height: 100% !important;
font-size: 1em;
line-height: 40px;
border-right: 1px solid #990800;
display: block;
padding-left: 15px;
padding-right: 15px;
}
#topmenudiv li a:hover {
text-decoration: none;
}
非常感谢! :)
从您的 css 中删除 #topmenudiv li::after 并以这种方式更改 #topmenudiv li:
#topmenudiv li {
list-style: none;
height: 100%;
padding: 14px 15px 11px 15px;
float: left;
position: relative;
z-index: 1;
border-right: 1px solid #990800;
}
更新
使用此代码并查看以下备注:
#topmenudiv ul {
height: 40px;
margin: 0;
padding: 0;
}
#topmenudiv li {
list-style: none;
height: 40px;
float: left;
border-bottom: 3px solid #FFFFFF;
}
#topmenudiv li:hover {
color: #ffffff;
text-decoration: none;
border-bottom: 3px solid blue;
outline: 0;
}
#topmenudiv li a {
height: 40px !important;
font-size: 1em;
line-height: 40px;
border-right: 1px solid #990800;
display: block;
padding-left: 15px;
padding-right: 15px;
}
#topmenudiv li a:hover {
text-decoration: none;
}
删除 CSS 中的所有 topmenudiv 内容,以及评论上方的内容。
我制作了蓝色悬停的边框底线,所以你可以看到它有效。
您在顶部栏的右侧位置使用了一张图片,#sphere。这应该是 CSS 中的背景图像,因此您不必处理 z-index,然后其余链接将起作用。
我所做的是,给 a 标签一些高度和行高,并将红色 border-left 绑定到它。我还删除了一些填充和边距。
我正在做一个 CSS 练习,其中将克隆 BBC 的旧站点。最初的问题是 #topmenu li 的白色底部边框看起来不稳定(我将这段代码作为评论包含在下面的页面中)
已通过使用伪元素添加右红色边框解决了这个问题。但是,锚标记已被禁用。我认为这是由于红色边框的 "absolute" 位置造成的,但如果没有绝对位置,我无法让菜单按应有的方式显示。现在,它看起来像我想要的那样,但顶部菜单链接不再有效:http://jsbin.com/poginowibe/1/edit?output
关于如何解决这个问题有什么想法吗?任何帮助将不胜感激。
/* 这是原代码,当白底边框出现怪异时 */
#topmenudiv li {
list-style: none;
height: 100%;
padding: 14px 15px 11px 15px;
border-right: 1px solid #990800;
float: left;
position: relative;
z-index: 1;
}
#topmenudiv li:hover {
color: #ffffff;
text-decoration: none;
padding: 14px 15px 8px 15px;
border-bottom: 3px solid #FFFFFF;
outline: 0;
}
/* 这是修复了不稳定的外观但禁用了标签后的代码 */
#topmenudiv li {
list-style: none;
height: 100%;
padding: 14px 15px 11px 15px;
float: left;
position: relative;
z-index: 1;
}
#topmenudiv li:hover {
color: #ffffff;
text-decoration: none;
padding: 14px 15px 8px 15px;
border-bottom: 3px solid #FFFFFF;
outline: 0;
}
#topmenudiv li::after {
content: "";
position: absolute;
bottom: 0; top: 0; left: 0; right: 0;
border-right: 1px solid #990800;
}
通过对 Joerg 的代码进行一些调整,我终于能够让它工作了!
#topmenudiv ul {
margin-top: 0px;
padding: 0;
}
#topmenudiv li {
list-style: none;
height: 38px;
line-height: 40px;
float: left;
position: relative;
z-index: 3;
}
#topmenudiv li:hover {
color: #ffffff;
text-decoration: none;
border-bottom: 3px solid #FFFFFF;
outline: 0;
}
#topmenudiv li a {
height: 100% !important;
font-size: 1em;
line-height: 40px;
border-right: 1px solid #990800;
display: block;
padding-left: 15px;
padding-right: 15px;
}
#topmenudiv li a:hover {
text-decoration: none;
}
非常感谢! :)
从您的 css 中删除 #topmenudiv li::after 并以这种方式更改 #topmenudiv li:
#topmenudiv li {
list-style: none;
height: 100%;
padding: 14px 15px 11px 15px;
float: left;
position: relative;
z-index: 1;
border-right: 1px solid #990800;
}
更新
使用此代码并查看以下备注:
#topmenudiv ul {
height: 40px;
margin: 0;
padding: 0;
}
#topmenudiv li {
list-style: none;
height: 40px;
float: left;
border-bottom: 3px solid #FFFFFF;
}
#topmenudiv li:hover {
color: #ffffff;
text-decoration: none;
border-bottom: 3px solid blue;
outline: 0;
}
#topmenudiv li a {
height: 40px !important;
font-size: 1em;
line-height: 40px;
border-right: 1px solid #990800;
display: block;
padding-left: 15px;
padding-right: 15px;
}
#topmenudiv li a:hover {
text-decoration: none;
}
删除 CSS 中的所有 topmenudiv 内容,以及评论上方的内容。
我制作了蓝色悬停的边框底线,所以你可以看到它有效。
您在顶部栏的右侧位置使用了一张图片,#sphere。这应该是 CSS 中的背景图像,因此您不必处理 z-index,然后其余链接将起作用。
我所做的是,给 a 标签一些高度和行高,并将红色 border-left 绑定到它。我还删除了一些填充和边距。