Javascript 如何从div容器开始为list元素画一条线?
活生生的例子 我试图在嵌套的ul中画出分隔两个li元素的线。但该行采用容器ul的宽度,而不是包含完整结构的div。在上述示例中,我使用了嵌套ul,但在我的工作中,使用ng repeat获得相同的效果Javascript 如何从div容器开始为list元素画一条线?,javascript,html,angularjs,css,Javascript,Html,Angularjs,Css,活生生的例子 我试图在嵌套的ul中画出分隔两个li元素的线。但该行采用容器ul的宽度,而不是包含完整结构的div。在上述示例中,我使用了嵌套ul,但在我的工作中,使用ng repeat获得相同的效果 .unstyled { padding-left: 24px; } .titleSeperator { background: black ; margin-top: 0px; margin-bottom: 0px; height : 1px; width
.unstyled {
padding-left: 24px;
}
.titleSeperator
{
background: black ;
margin-top: 0px;
margin-bottom: 0px;
height : 1px;
width:100%;
}
我认为有一种更简单的方法来做你想做的事 首先,删除所有
.titleSeperator
div。然后,将以下CSS代码用于父级ul
:
ul.lines {
line-height: 1.4em;
background: linear-gradient(white 95%, black 5%);
background-size: 100% 1.4em;
background-origin: content-box;
}
新小提琴:
CSS的一些解释:
允许创建以95%白色开始,以5%黑色结束的渐变线条渐变
定义渐变的大小:宽度100%,高度1.4em(应与背景大小
)线条高度相同
指定背景位置属性应该相对于什么background origin
位置:相对;溢出:隐藏
在最上面的ul
上,并使分离器处于绝对位置
.titleSeperator {
background: black;
height : 1px;
width: 10000px;
position: absolute;
left: 0;
}
演示:
然而Lucas提出了更好的方法,所以如果可以的话就使用它,应该避免冗余的HTML元素
变式2
您还可以使用:before
伪元素代替冗余的。titleSeparator
divs
.unstyled > li:before {
content:'';
background: black;
height : 1px;
width: 10000px;
position: absolute;
left: 0;
}
演示:像这样:?@dfsq no不在右边,但接触divHi的左边距。我使用的是px表示法,它不支持它,格式会受到干扰。例如,您只需将1.4em替换为16px。