@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;
    }
  }
}
  • Вопрос задан
  • 285 просмотров
Пригласить эксперта
Ответы на вопрос 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'ом.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы