#html #css
Пытаюсь сделать меню с помощью LI и отцентрировать текст ссылок. И чтобы отступов
между ссылками не было. Но, к сожалению, ничего не выходит: текст не выравнивается
по вертикали, и отступы между элементами сохранились.
ul.menu {
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
background-color: #333;
height: 100px;
}
ul.menu li {
display: inline-block;
padding: 0;
margin: 0;
height: 100%;
width: 75px;
background-color: red;
text-align: center;
}
Что тут сделано не верно. Помогите пожалуйста
Ответы
Ответ 1
1. inline-block 1) Если высота меню 100px, то однострочные пункты можно отцентрировать по вертикали с помощью line-height: 100px;. 2) Инлайн-блоки ведут себя как слова в предложении: оставленные между ними пробелы и переводы строки превращаются в лишние просветы. На английском СО собраны способы борьбы с этой напастью. ul.menu { background-color: #333; list-style-type: none; margin: 0; padding: 0; } ul.menu li { background-color: red; display: inline-block; line-height: 100px; text-align: center; width: 75px; }2. table-cell Можно заставить пункты меню вести себя так, будто они ячейки таблицы: ul.menu { background-color: #333; list-style-type: none; margin: 0; padding: 0; } ul.menu li { background-color: red; display: table-cell; height: 100px; text-align: center; vertical-align: middle; width: 75px; }Ответ 2
Как вариант: ul.menu { list-style-type: none; margin: 0; padding: 0; overflow: hidden; background-color: #333; } ul.menu li { float: left; } ul.menu a { display: block; width: 75px; height: 100px; background: red; text-align: center; text-decoration: none; line-height: 100px; color: #fff; } ul.menu a:hover { background: silver; color: #000; }
Ответ 3
Могу предложить вам воспользоваться flex. ul.menu { list-style-type: none; padding: 0; background-color: #333; height:100px; display: flex; } ul.menu li{ display: flex; align-items: center; justify-content: center; height:100%; width:75px; background-color:red; }
Комментариев нет:
Отправить комментарий