如何在 CSS 中的 ul 内部的 li 之间创建一个 space?
How can I make a space between li inside of ul in CSS?
我想用 一条垂直线(Y 轴) 连接 li
个元素,从上到下的直线 connected
,我做的设计效果很好,但是,我想在我使用的 li
之间添加一些 space 垂直margin
但它分隔了 垂直线。 我怎样才能做到 space 但保持垂直线 connected
。
ul{
list-style:none;
}
li{
border-left: .4rem solid #BBB;
padding-left: 1.5rem;
font-size: 1.2rem;
margin: 1.5rem 0;/*Here does space but they're not connected*/
position:relative;
}
li::before{
content:"";
display:block;
width:1.3rem; height:.4rem;
background-color: #BBB;
position:absolute;
top:1rem;
left:0;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Linked Unordered List</title>
</head>
<body>
<h1>Lorem ipsum dolor sit amet</h1>
<ul>
<li>Lorem ipsum dolor sit amet</li>
<li>Lorem ipsum dolor sit amet</li>
<li>Lorem ipsum dolor sit amet</li>
<li>Lorem ipsum dolor sit amet</li>
</ul>
</body>
</html>
删除您的 margin
并使用 padding: 1.5rem 0 1.5rem 1.5rem;
作为您的 space。
边距不是元素的一部分,因此该行不会显示在其中。
您可以改用填充,但您不想使用顶部和底部 space 而是将其放在底部(否则您会在第一个元素的顶部得到一条虚假的线)。
但这意味着你想摆脱底部的虚假线,你可以使用 last-child 来做到这一点。
ul {
list-style: none;
}
li {
border-left: .4rem solid #BBB;
padding-left: 1.5rem;
padding-bottom: 3rem;
font-size: 1.2rem;
/* margin: 1.5rem 0;/*Here does space but they're not connected*/
position: relative;
}
li::before {
content: "";
display: block;
width: 1.3rem;
height: .4rem;
background-color: #BBB;
position: absolute;
top: 1rem;
left: 0;
}
li:last-child {
padding-bottom: 0;
}
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Linked Unordered List</title>
</head>
<body>
<h1>Lorem ipsum dolor sit amet</h1>
<ul>
<li>Lorem ipsum dolor sit amet</li>
<li>Lorem ipsum dolor sit amet</li>
<li>Lorem ipsum dolor sit amet</li>
<li>Lorem ipsum dolor sit amet</li>
</ul>
</body>
</html>
我想用 一条垂直线(Y 轴) 连接 li
个元素,从上到下的直线 connected
,我做的设计效果很好,但是,我想在我使用的 li
之间添加一些 space 垂直margin
但它分隔了 垂直线。 我怎样才能做到 space 但保持垂直线 connected
。
ul{
list-style:none;
}
li{
border-left: .4rem solid #BBB;
padding-left: 1.5rem;
font-size: 1.2rem;
margin: 1.5rem 0;/*Here does space but they're not connected*/
position:relative;
}
li::before{
content:"";
display:block;
width:1.3rem; height:.4rem;
background-color: #BBB;
position:absolute;
top:1rem;
left:0;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Linked Unordered List</title>
</head>
<body>
<h1>Lorem ipsum dolor sit amet</h1>
<ul>
<li>Lorem ipsum dolor sit amet</li>
<li>Lorem ipsum dolor sit amet</li>
<li>Lorem ipsum dolor sit amet</li>
<li>Lorem ipsum dolor sit amet</li>
</ul>
</body>
</html>
删除您的 margin
并使用 padding: 1.5rem 0 1.5rem 1.5rem;
作为您的 space。
边距不是元素的一部分,因此该行不会显示在其中。
您可以改用填充,但您不想使用顶部和底部 space 而是将其放在底部(否则您会在第一个元素的顶部得到一条虚假的线)。
但这意味着你想摆脱底部的虚假线,你可以使用 last-child 来做到这一点。
ul {
list-style: none;
}
li {
border-left: .4rem solid #BBB;
padding-left: 1.5rem;
padding-bottom: 3rem;
font-size: 1.2rem;
/* margin: 1.5rem 0;/*Here does space but they're not connected*/
position: relative;
}
li::before {
content: "";
display: block;
width: 1.3rem;
height: .4rem;
background-color: #BBB;
position: absolute;
top: 1rem;
left: 0;
}
li:last-child {
padding-bottom: 0;
}
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Linked Unordered List</title>
</head>
<body>
<h1>Lorem ipsum dolor sit amet</h1>
<ul>
<li>Lorem ipsum dolor sit amet</li>
<li>Lorem ipsum dolor sit amet</li>
<li>Lorem ipsum dolor sit amet</li>
<li>Lorem ipsum dolor sit amet</li>
</ul>
</body>
</html>