【发布时间】:2017-08-23 15:33:24
【问题描述】:
我尝试在导航栏的列表项下添加一个小三角形作为当前页面指示器,使用 ::after 类“活动”。
然而,
-
由于长度不同,三角形的对齐方式可能不是所有列表项的中心。
-
网站应该是响应式的。当我调整窗口屏幕大小时,列表项被压缩并扩大列表的宽度。同样,由于列表项的长度差异,如果三角形的一部分位于短列表项下,则会被覆盖,因为 "::after" 忽略了填充空间。
这里是sn-p的代码:
nav {
display: block;
}
ul {
display: table;
text-align: center;
background-color: red;
margin-bottom: 5%;
width: 100%;
padding-left: 0;
margin-bottom: 0;
list-style: none;
}
li {
display: table-cell;
float: none;
padding: 5px 0;
vertical-align: middle;
position: relative
}
li.active::after {
content: "";
width: 0;
height: 0;
position: absolute;
right: 40%;
border-style: solid;
border-width: 15px 10px 0 10px;
border-color: red transparent transparent transparent;
}
<nav>
<ul>
<li>xxxxxxxxxxxxxxxxxx</li>
<li>xxxx</li>
<li>xxxx</li>
<li class="active">xxxx</li>
<li>xxxx</li>
<li>xxxx</li>
<li>xxxx</li>
</ul>
</nav>
有什么解决办法吗?
【问题讨论】:
标签: html css css-position pseudo-element