html,
body {
margin: 0;
padding: 0;
}
body {
width: 280px;
min-height: 280px;
padding: 10px;
font-family: “Arial”, sans-serif;
font-size: 14px;
line-height: 1.4;
background: #ecf0f1 ;
}
.main-menu {
width: 200px;
padding: 0;
margin: 0;
list-style: none;
background: #2980b9 ;
}
.main-menu > li > a {
display: block;
color: #ffffff ;
padding:10px 15px;
text-decoration: none;
border-bottom: 2px solid #2c3e50 ;
}
.main-menu ul {
padding: 10px 0;
list-style: none;
border-bottom: 2px solid #2c3e50 ;
background-color: #ffffff ;
}
.main-menu ul a {
display: block;
padding: 5px 15px;
color: #2980b9 ;
}
.main-menu .active {
background-color: #1abc9c ;
}
/
Ineska
06.Ноябрь.2016 19:10:38
2
Хороший код, у меня замечаний нет.
Объясните пожалуйсто, почему когда в .main-menu ul убираем паддинг, блок смещается в право, а не в лево?
Ineska
07.Ноябрь.2016 07:14:16
4
Что конкретно вы имеете в виду, то что стираете строчку со свойством padding из кода или то что обнуляете отступ?
Я так думаю, товарищ имеет ввиду - если убрать отступы слева и справа.
Смещается не контейнер (.main-menu ul), а его содержимое блоки (.main-menu ul a). А они - вложенный список. И этот отступ формируется автоматически.
Если я не прав поправьте.
Ineska
07.Ноябрь.2016 09:35:57
6
Да, скорее всего он говорит об отступе по умолчанию. Посмотрим, что ответит.
Имею ввиду если стерет строку со свойством. Т.е. блок ул прилипает к правому краю, а не к левому, почему?
Ineska
07.Ноябрь.2016 18:15:27
8
Потому что когда вы стираете строку со свойством padding, вы возвращаете ему значение auto. А значение auto не равно нулю. Вот и получается, что отступ вы вроде бы убрали, а он всё равно есть, по умолчанию.
Спасибо! Тогда чему равно значеное авто? и почему оно смещает именно в правую сторону?
Ineska
07.Ноябрь.2016 21:00:57
10
Значение auto для каждого браузера может быть разным. Вполне логичное поведение, когда есть отступ слева, то блок сдвинут вправо.
Будьте добры - гляньте.
Наверное можно было короче.
html,
body {
margin: 0;
padding: 0;
}
body {
width: 380px;
min-height: 280px;
padding: 10px;
font-family: “Arial”, sans-serif;
font-size: 14px;
line-height: 1.4;
background: #ecf0f1 ;
}
.main-menu {
position: relative;
margin: 0;
padding: 0;
}
.main-menu > li {
width: 200px;
background: #2980b9 ;
border-bottom: 2px solid #2c3e50 ;
list-style: none;
}
.main-menu li a {
display: inline-block;
color: #ffffff ;
text-decoration: none;
margin: 10px 15px;
}
.main-menu .sub-menu {
display: none;
position: absolute;
z-index: 10;
left: 180px;
padding :0 ;
margin: 0;
list-style: none;
}
.main-menu .sub-menu li {
width: 200px;
border-bottom: 2px solid #2ecc71 ;
}
.main-menu .opened:hover .sub-menu {
display: inline-block;
background: #1abc9c ;
}
.main-menu .opened {
background: #1abc9c ;
}
Codepen
1 лайк
Ineska
09.Ноябрь.2016 17:14:33
12
Очень интересный ваш вариант. Сначала я не поняла, зачем здесь inline-block, но потом…
Гениальное решение, я бы сказала. Единственное, что margin: 10px 15px; я бы заменила на padding, чтобы ссылка была большего размера и width: 200px; задавала бы контейнеру, а не пункту списка li.
Спасибо!
Вы мне льстите.
Я не знаю, что меня подвигло использовать inline-blocк, но с ним как-то всё просто сложилось.
Ineska
09.Ноябрь.2016 19:29:16
14
Нет, просто все остальные решения были очень похожи друг на друга, и я не думала даже, что здесь можно сделать по-другому.