16
4

2 に答える 2

27

これについて私が思いつくことができる最善の方法は、生成されたコンテンツのいくつかの(残念ながら残念な)ネストと使用です(したがって、かなり最新のブラウザーが必要なので、IE <8はそれほどきれいに見えません)。とはいえ、HTMLを考えると:

ul {
  padding: 0;
  margin: 0;
  list-style-type: none;
  position: relative;
}
li {
  list-style-type: none;
  border-left: 2px solid #000;
  margin-left: 1em;
}
li div {
  padding-left: 1em;
  position: relative;
}
li div::before {
  content:'';
  position: absolute;
  top: 0;
  left: -2px;
  bottom: 50%;
  width: 0.75em;
  border: 2px solid #000;
  border-top: 0 none transparent;
  border-right: 0 none transparent;
}
ul > li:last-child {
  border-left: 2px solid transparent;
}
<ul>
  <li><div>Level 1</div></li>
  <li><div>Level 1</div>
    <ul>
      <li><div>Level 2</div></li>
      <li><div>Level 2</div>
        <ul>
          <li><div>Level 3</div></li>
          <li><div>Level 3</div></li>
        </ul>
      </li>
    </ul>
  </li>
  <li><div>Level 1</div></li>
</ul>

これを取得します:

JSFiddleデモへのリンク。

JSフィドルデモ

于 2013-01-20T11:29:25.920 に答える