html嵌套的li样式-每行前面的彩色栏

时间:2018-10-25 09:09:53

标签: html css html-lists

我想为我从markdown生成的列表中设置样式。生成的html代码是这样的:

ul li {
    list-style-type: none;
    background: white;
    margin: 4px 0;
    padding-top: 4px;
    padding-left: 24px;
    border-left: 12px solid #5EAADF;
    background: #F6F8FA;
}

ul {
    padding-inline-start: 0;
}
<ul>
  <li>Item 1
    <ul>
      <li>Item 1.1
        <ul>
          <li>Item 1.1.1</li>
        </ul>
      </li>
      <li>Item 1.2
        <ul>
          <li>Item 1.2.1
            <ul>
              <li>Item 1.2.1.1</li>
            </ul>
          </li>
        </ul>
      </li>
    </ul>
  </li>
  <li>Item 2</li>
  <li>Item 3</li>
  <li>Item 4</li>
  <li>Item 5</li>
</ul>

我想在每行前面添加一个彩色条。我只是设法这样设计它。但是我想要的是这样的:

enter image description here

生成的html代码有可能吗?

1 个答案:

答案 0 :(得分:1)

可以用伪代码完成。

但是,如果不进行任何HTML更改,我认为您不会完美。如果将<li>元素的文本包装在<p><span>

中,我将使生活变得更加轻松

ul li {
  list-style-type: none;
  background: white;
  margin: 4px 0;
  padding-top: 4px;
  padding-left: 24px;
  background: #F6F8FA;
  position: relative;
  line-height: 20px;
  /* Added */
}

ul li:before {
  content: "";
  position: absolute;
  top: 0px;
  left: 0;
  height: 24px; /* line-height + padding-top */
  width: 12px; /* original border width */
  background-color: #5EAADF;
}

ul {
  padding-inline-start: 0;
  /* 
    Experimental technology, limited browser support
    See: https://developer.mozilla.org/en-US/docs/Web/CSS/padding-inline-start
  */
}
<ul>
  <li>Item 1
    <ul>
      <li>Item 1.1
        <ul>
          <li>Item 1.1.1</li>
        </ul>
      </li>
      <li>Item 1.2
        <ul>
          <li>Item 1.2.1
            <ul>
              <li>Item 1.2.1.1</li>
            </ul>
          </li>
        </ul>
      </li>
    </ul>
  </li>
  <li>Item 2</li>
  <li>Item 3</li>
  <li>Item 4</li>
  <li>Item 5</li>
</ul>