Страницы

Поиск по вопросам

вторник, 24 декабря 2019 г.

Как растянуть пункты меню по всей ширине родительского блока?

#html #jquery #css


Есть обычная навигация:

HTML:




CSS: 

nav {
  font-size: 0;
    line-height: 0;
    letter-spacing: -1px;
}

nav li {
  display: inline-block;
}

nav a {
    display: block;
  background: #000;
    padding: 0 10px;
    font-size: 17px;
    line-height: normal;
    letter-spacing: normal;
  color: #fff;
}

nav li:nth-child(2n) a {
  background: #666;
}


Как пункты меню растянуть по всей ширине блока nav, чтобы padding у всех ссылок был
одинаковым (пустого пространства между ссылками быть не должно, это пространство распределяется
на внутренние отступы ссылок)?

UPD:

Изображение того, как должно отображаться меню.

    


Ответы

Ответ 1



Поставить display: flex родителю, flex-basis: auto + flex-grow: 1 — потомкам. body, ul { margin: 0; padding: 0; } ul { display: flex; } ul li { list-style-type: none; flex-basis: auto; flex-grow: 1; background: #000; text-align: center; } ul li:nth-child(2n) { background: #ccc; } ul li a { padding: 20px 0; text-decoration: none; color: #ccc; display: block; } ul li:nth-child(2n) a { color: #000; }

Ответ 2



Вариант на Flexbox body, ul { margin: 0; padding: 0; } ul, ul li, ul li a { display: -webkit-box; display: -ms-flexbox; display: flex; width: 100%; } ul { text-align: center; -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-direction: row; flex-direction: row; } ul li a { min-height: 70px; text-decoration: none; color: #333; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; } ul li a:hover { background: #eee; }

Комментариев нет:

Отправить комментарий