我找到了一些关于border-color
的信息,结果发现,你可以用不同的颜色指定每个边框。我的问题如下:可以用两种或多种颜色来指定左边框吗?问题是,我有一个带有li
元素的导航栏,这些元素由padding
和border
属性划分。例如:
li {
float: left;
padding-left&right: 10px;
border-left: 2px solid white;
}
并且边框和li
元素中的文本一样高。我需要的是让边框比文本短。所以我想我可以给予它三种颜色:透明-白色-透明。
也许有一个现实的方法来做到这一点?这只是在我的头上,我发现的信息,这是不可能的,以缩短边界下的高度li
元素。
2条答案
按热度按时间xu3bshqb1#
最合适的实现方式是利用
border-image
属性和Stephen Brickner回答中提到的线性梯度,但缺点是目前浏览器的支持非常低。还有一些其他方法具有比可以使用的更好的浏览器支持,它们如下:
方法1:带边框的伪元素
您可以使用高度比父级
li
元素短的伪元素(:before
或:after
),向其添加border
并将其放置在适当的位置以实现所需的效果。分隔线的粗细由伪元素边框的宽度确定。在可能的选项中,此方法具有最高的浏览器支持。但是,如果分隔符需要多种颜色(或)需要渐变效果,则不能使用此方法。
方法二:背景梯度
您可以将
linear-gradient
作为背景图像添加到元素中,并将其适当定位以生成比文本短的行。在此方法中,分隔线的粗细由背景图像的宽度确定。一个二个一个一个
浏览器对此的支持比
border-image
方法好,但比伪元素方法差,优点是分隔符可以有多种颜色,甚至可以像上面的代码片段一样使用渐变模式。wn9m85ua2#
你必须对它使用一个变换。例如: