我正在尝试使活动列表项看起来像这样:
这就是我现在所拥有的(蓝色三角形是直角三角形而不是钝角等腰):
这是我的HTML:
<ul class="guideList">
<li><a>Consulting</a></li>
<li class="active">Law<span class="activePointer"></span></li>
<li><a>Finance</a></li>
<li><a>Technology</a></li>
</ul>
这是我的CSS:
.guideList{
font-size: 12px;
line-height: 12px;
font-weight: bold;
list-style-type: none;
margin-top: 10px;
width: 125px;
}
.guideList li{
padding: 5px 0px 5px 10px;
}
.guideList .active{
background-color: #0390d1;
color: white;
}
.guideList .activePointer{
margin-top: -5px;
margin-bottom: -5px;
float: right;
display: inline-block;
width: 0px;
height: 0px;
border-top: 11px solid white;
border-left: 11px solid transparent;
border-bottom: 11px solid white;
}
我该如何解决这个问题?
ETA 我尝试了@ jlbruno的想法(减小左边框的大小),但是当我这样做时,三角形的线条并不清晰:
ETA 使用转换:旋转固定边缘(谢谢@jlbruno!)...但不适用于IE8。我尝试使用微软矩阵变换过滤器(related SO question),但它没有帮助。我如何在IE8中使用它? 这是我为IE8尝试的CSS:
-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.9999996192282494, M12=-0.0008726645152362283, M21=0.0008726645152362283, M22=0.9999996192282494, SizingMethod='auto expand')";
答案 0 :(得分:6)
将.guideList .activePointer
上的边框左侧更改为7px
而不是11 ... ...删除该值越多,角度就越宽。
.guideList .activePointer{
margin-top: -5px;
margin-bottom: -5px;
float: right;
display: inline-block;
width: 0px;
height: 0px;
border-top: 11px solid white;
border-left: 7px solid transparent;
border-bottom: 11px solid white;
-webkit-transform: rotate(0.05deg); // added to smooth edges in Chrome
}
答案 1 :(得分:0)
由于CSS没有为您提供所需的结果,因此您可能需要为此对象执行右对齐的背景图像。
<强> HTML 强>
<ul class="guideList">
<li><a>Consulting</a></li>
<li class="active">Law</li>
<li><a>Finance</a></li>
<li><a>Technology</a></li>
</ul>
<强> CSS 强>
.guideList .active{
background: url('images/right-arrow.png') #0390d1 center right no-repeat;
color: white;
}
答案 2 :(得分:0)
你可以使用这个html和Css:
<强>的CSS:强>
.Rectangular{
width: 100px;
height: 30px;
text-align: left;
position: relative;
background-color: #0390D1;
color: #fff;
padding-left: 10px;
font: 12px/30px tahoma;
margin-right: 100px;}
.Rectangular>span{
display: inline-block;
border-color: rgba(0, 0, 0, 0) rgba(0, 0, 0, 0) rgba(0, 0, 0, 0) #0390D1;
border-left: 30px solid #0390D1;
border-right: 30px solid rgba(0, 0, 0, 0);
border-style: solid;
border-width: 15px;
position: absolute;
right: -29px;
top: 0;
}
HTML:
<div class="Rectangular">Law <span></span></div>