有没有办法限制边界的长度?我有一个有底部边框的<div>,但我想在<div>的左边添加一个只延伸一半的边框。

有没有什么方法可以在不添加额外元素的情况下做到这一点?


当前回答

边界只能按边来定义,而不能按边的分数来定义。所以,不,你不能这样做。

另外,一个新元素也不会是边界,它只会模仿你想要的行为-但它仍然是一个元素。

其他回答

伪元素岩石之后的:::)

如果你玩一点,你甚至可以设置你的调整大小的边界元素显示居中,或者只有当它旁边有另一个元素时才出现(就像在菜单中)。下面是一个菜单的例子:

#menu > ul > li {
    position: relative;
    float: left;
    padding: 0 10px;
}

#menu > ul > li + li::after {
    content:"";
    background: #ccc;
    position: absolute;
    bottom: 25%;
    left: 0;
    height: 50%;
    width: 1px;
}

#菜单> ul > li { 位置:相对; 浮:左; 填充:0 10px; list-style:没有; } #menu > ul > li + li::after { 内容:“”; 背景:# ccc; 位置:绝对的; 底部:25%; 左:0; 高度:50%; 宽度:1 px; } < div id =“菜单”> < ul > <李> Foo李< / > <李>栏李< / > <李>记者李< / > < / ul > < / div >

这是一个CSS技巧,不是一个正式的解决方案。我保留黑色句点的代码,因为它可以帮助我定位元素。然后,给你的内容上色(颜色:白色)和(margin-top:-5px左右),让它看起来好像句号不存在。

div.yourdivname:after {
  content: "";
  border-bottom: 1px solid grey;
  width: 60%;
  display: block;
  margin: 0 auto;
}

关于此问题的文章:https://www.steckinsights.com/shorten-length-border-bottom-pure-css/

每条边只能定义一个边框。您必须为此添加一个额外的元素!

边界只能按边来定义,而不能按边的分数来定义。所以,不,你不能这样做。

另外,一个新元素也不会是边界,它只会模仿你想要的行为-但它仍然是一个元素。

另一种方法是将边界图像与线性梯度结合使用。

div { 宽度:100 px; 身高:75 px; 背景颜色:绿色; background-clip:内容框;/*使背景颜色不低于边界*/ 左边框:5px纯黑色; 边界图像:线性梯度(到顶部,#000 50%,rgba(0,0,0,0) 50%);/*到顶部- 50%透明*/ border-image-slice: 1; } < div > < / div >

jsfiddle: https://jsfiddle.net/u7zq0amc/1/


浏览器支持: 即:11 +

铬:

Firefox: 15 +

为了获得更好的支持,还可以添加供应商前缀。

caniuse border-image