html - 如何使用 li::before 将 html 列表中的文本与自定义元素符号对齐

标签 html css html-lists

搭配经典<ul> <li>列表,如果文本里面是 <li>超过 2 行,文本完全对齐。请参阅此片段和屏幕截图(红线显示完美对齐):

enter image description here

<ul>
<li>Lorem ipsum dolor sit amet, consectetur adipiscing elit. In eget pellentesque sem, sed condimentum orci. Sed ut justo nisl. Fusce sed justo eget nisl euismod congue in non lectus. Nulla nibh tortor, suscipit at aliquet pellentesque, varius ut mauris. Cras id ipsum eget lorem consequat lacinia. Sed aliquet aliquam feugiat.</li>
<li>Lorem ipsum dolor sit amet, consectetur adipiscing elit. In eget pellentesque sem, sed condimentum orci. Sed ut justo nisl. Fusce sed justo eget nisl euismod congue in non lectus. Nulla nibh tortor, suscipit at aliquet pellentesque, varius ut mauris. Cras id ipsum eget lorem consequat lacinia. Sed aliquet aliquam feugiat.</li>
<li>Lorem ipsum dolor sit amet, consectetur adipiscing elit. In eget pellentesque sem, sed condimentum orci. Sed ut justo nisl. Fusce sed justo eget nisl euismod congue in non lectus. Nulla nibh tortor, suscipit at aliquet pellentesque, varius ut mauris. Cras id ipsum eget lorem consequat lacinia. Sed aliquet aliquam feugiat.</li>

</ul>

现在,我不得不更改元素符号颜色,所以我已经像这样修改了 css。它有效,但文本不对齐(第二行在自定义元素符号下。我该如何处理这个问题并让文本在第一行对齐?

查看代码片段和屏幕截图:

enter image description here

ul {
  list-style: none;
}

ul li::before {
  content: "\002022";
  color: #d4b340;
  padding-right: 18px
}
<ul>
  <li>Lorem ipsum dolor sit amet, consectetur adipiscing elit. In eget pellentesque sem, sed condimentum orci. Sed ut justo nisl. Fusce sed justo eget nisl euismod congue in non lectus. Nulla nibh tortor, suscipit at aliquet pellentesque, varius ut mauris.
    Cras id ipsum eget lorem consequat lacinia. Sed aliquet aliquam feugiat.</li>
  <li>Lorem ipsum dolor sit amet, consectetur adipiscing elit. In eget pellentesque sem, sed condimentum orci. Sed ut justo nisl. Fusce sed justo eget nisl euismod congue in non lectus. Nulla nibh tortor, suscipit at aliquet pellentesque, varius ut mauris.
    Cras id ipsum eget lorem consequat lacinia. Sed aliquet aliquam feugiat.</li>
  <li>Lorem ipsum dolor sit amet, consectetur adipiscing elit. In eget pellentesque sem, sed condimentum orci. Sed ut justo nisl. Fusce sed justo eget nisl euismod congue in non lectus. Nulla nibh tortor, suscipit at aliquet pellentesque, varius ut mauris.
    Cras id ipsum eget lorem consequat lacinia. Sed aliquet aliquam feugiat.</li>
</ul>

最佳答案

使用绝对位置添加:before元素

ul {
  list-style: none;
}
ul li {
  position:relative;
  padding-left:20px;
}
ul li::before {
  content: "\002022";
  color: #d4b340;
  padding-right: 5px;
  left:0;
  position: absolute;
}
<ul>
  <li>Lorem ipsum dolor sit amet, consectetur adipiscing elit. In eget pellentesque sem, sed condimentum orci. Sed ut justo nisl. Fusce sed justo eget nisl euismod congue in non lectus. Nulla nibh tortor, suscipit at aliquet pellentesque, varius ut mauris.
    Cras id ipsum eget lorem consequat lacinia. Sed aliquet aliquam feugiat.</li>
  <li>Lorem ipsum dolor sit amet, consectetur adipiscing elit. In eget pellentesque sem, sed condimentum orci. Sed ut justo nisl. Fusce sed justo eget nisl euismod congue in non lectus. Nulla nibh tortor, suscipit at aliquet pellentesque, varius ut mauris.
    Cras id ipsum eget lorem consequat lacinia. Sed aliquet aliquam feugiat.</li>
  <li>Lorem ipsum dolor sit amet, consectetur adipiscing elit. In eget pellentesque sem, sed condimentum orci. Sed ut justo nisl. Fusce sed justo eget nisl euismod congue in non lectus. Nulla nibh tortor, suscipit at aliquet pellentesque, varius ut mauris.
    Cras id ipsum eget lorem consequat lacinia. Sed aliquet aliquam feugiat.</li>
</ul>

或者另一种方式不需要添加:before元素

ul li{
  color: #d4b340;
}
ul li p{
  color:#000;
}
<ul>
  <li><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. In eget pellentesque sem, sed condimentum orci. Sed ut justo nisl. Fusce sed justo eget nisl euismod congue in non lectus. Nulla nibh tortor, suscipit at aliquet pellentesque, varius ut mauris.
    Cras id ipsum eget lorem consequat lacinia. Sed aliquet aliquam feugiat.</p></li>
  <li><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. In eget pellentesque sem, sed condimentum orci. Sed ut justo nisl. Fusce sed justo eget nisl euismod congue in non lectus. Nulla nibh tortor, suscipit at aliquet pellentesque, varius ut mauris.
    Cras id ipsum eget lorem consequat lacinia. Sed aliquet aliquam feugiat.</p></li>
  <li><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. In eget pellentesque sem, sed condimentum orci. Sed ut justo nisl. Fusce sed justo eget nisl euismod congue in non lectus. Nulla nibh tortor, suscipit at aliquet pellentesque, varius ut mauris.
    Cras id ipsum eget lorem consequat lacinia. Sed aliquet aliquam feugiat.</p></li>
</ul>

关于html - 如何使用 li::before 将 html 列表中的文本与自定义元素符号对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46951944/

相关文章:

javascript - 文本框宽度问题——IE

php - 时间轴上同一日期的 2 个元素

jQuery ul li 悬停效果

css - 如何在有序列表和无序列表中插入段落(或换行符)

css - 当文本长度超过容器时,文本溢出会消失,并在悬停时滚动

jquery - 使用 jQuery 循环遍历 JSON 结果

带有 gif 的 Html & Css 图像边框

javascript - 在鼠标悬停时启动 GIF,否则暂停?

php - 来自特定表列的无序列表

css - super 鱼菜单 : Keep subs visible when on pages in parent section?