提问者:小点点

仅当列表项超过一定字数时,才向列表项添加底部边距


我喜欢列表。非常喜欢列表。有时我有这样的简短项目的列表:

列表A

    < li >一个 < li >两个 三个

但有时我有列表,里面有很长的文本块。喜欢这个:

名单B

  • Mauris ultrices eros in cursus turpis massa tincidunt dui ut ornare lectus sit amet est placerat in egestas erat imperdiet sed euismod nisi porta lorem mollis aliquam ut porttitor leo a diam sollicitudin tempor id eu nisl nunc mi ipsum
  • Massa tempor nec feugiat nisl pretium fusce id velit ut tortor pretium viverra suspendisse potenti nullam ac tortor vitae purus
  • Aliquet nibh praesent tristique magna sit amet purus gravida quis blandit turpis cursus in hac habitasse platea dictumst quisque sagittis purus sit amet volutpat consequat mauris nunc congue nisi vitae suscipit tellus mauris a diam maecenas sed enim ut sem viverra aliquet eget sit amet
  • Consequat id porta nibh venenatis cras sed felis eget velit aliquet sagittis id consectetur purus ut faucibus pulvinar elementum integer enim neque volutpat ac tincidunt vitae semper quis lectus nulla

对于列表A,我想保持项目接近,就像清单/待办事项一样。但是,对于列表B,我想在列表项中添加一个边距底部。这只适用于CSS吗?假设我想定位超过20个单词左右的列表项,我该使用什么选择器?


共1个答案

匿名用户

没有这样的选择器,但这里有一个想法来近似你想要的。诀窍是拥有一个不可见的元素,只有在内容很多时才会创建所需的空间。否则,它将与内容保持在同一行。

ul li div {
   display:inline-block;
   vertical-align:top;
}
ul li:after {
  content:"";
  display:inline-block;
  width:calc(100% - 200px); /* update the 200px like you want*/
  height:20px; /* your margin */
  background:rgba(255,0,0,.2); /* to illustrate*/
}
<ul>
  <li><div>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque tempus viverra dapibus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas</div></li>
  <li><div>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque tempus viverra dapibus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas</div></li>
  <li><div>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque tempus viverra dapibus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas</div></li>
</ul>


<ul>
  <li><div>Lorem ipsum dolor sit amet</div></li>
  <li><div>Lorem</div></li>
  <li><div>Lorem ipsum</div></li>
</ul>