@Diesel-nick

CSS Sidebar — как сохранить вид дерева и сделать выделение всей строки (без учёта отступа)?

Как сделать сад бар в виде дерева с (т.е. меню потомков должно отступать от края на большее расстояние чем родитель) и при этом при a:hover выделять всю строку (а не ту часть где начинается <a>)

Пример на jsfiddle.net

d65a4849556144d3a46a658c6785bf27.png
<span>Sidebar</span>
<div id="sidebar">
  <ul>
    <li class="nav-item">
      <a href="#" class="nav-link">One item</a>
    </li>
    <li class="nav-item">
      <a href="#" class="nav-link">Two item</a>
    </li>
    <ul class="submenu">
      <li class="nav-item">
        <a href="#" class="nav-link">Submenu one item</a>
      </li>
      <ul class="submenu">
        <li class="nav-item">
          <a href="#" class="nav-link">Submenu one item</a>
        </li>
        <li class="nav-item">
          <a href="#" class="nav-link">Submenu two item</a>
        </li>
      </ul>
      <li class="nav-item">
        <a href="#" class="nav-link">Submenu two item</a>
      </li>
    </ul>
  </ul>
</div>


#sidebar {
  background: #e8e8ee;
  width: 300px;
  ul {
    list-style: none;
  }
  .nav-link {
    display: block;
    line-height: 40px;
    text-decoration: none;
    &:hover {
      background: green;
    }
  }
}
  • Вопрос задан
  • 288 просмотров
Пригласить эксперта
Ответы на вопрос 2
@artem_music
Можно попробовать псевдоэлементами
ul{
padding-left:20px;
}
li{
position:relative;
}
a:hover:after{
content:'';
position:absolute;
left:0;
top:0;
width:100%;
height:100%;
background:green;
}
Ответ написан
Ankhena
@Ankhena Куратор тега CSS
Нежно люблю верстку
:hover применять не к ссылке, а к li
у ссылок увеличивать отступ, у li - нет.

Если количество уровней вложенности известное, то стилями.
Если нет, то придется считать, например js'ом.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы