#html #css #navigation
#HTML #css #навигация
Вопрос:
У меня проблема с элементом header.main-header. Заголовок не виден в окне просмотра. Я вставил значение высоты, чтобы сделать его видимым. Может ли кто-нибудь помочь мне и объяснить причину, по которой он не виден, когда не вставлена высота.
.main-header {
background: yellow;
padding: 0 3em;
position: absolute;
width: 100%;
top: 0;
height: 85px;
}
ul {
padding: 0;
list-style: none;
}
.main-nav {
position: relative;
}
.nav-left {
float: left;
}
.nav-right {
float: right;
}
.middle {
position: absolute;
left: 50%;
transform: translate(-50%,0);
}
.nav-right li {
display: inline-block;
}
<header class="main-header">
<nav class="main-nav">
<ul class="nav-left">
<li><a href="">Try Dropbox Business</a></li>
</ul>
<div class="middle">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/4/47/Dropbox_logo_(September_2013).svg/200px-Dropbox_logo_(September_2013).svg.png" alt="Dropbox Logo" />
</div>
<ul class="nav-right">
<a href="#">Download the app</a>
<li><a href="#">Sign in</a></li>
</ul>
</nav>
</header>
Вот моя работа в Codepen:
http://codepen.io/marcvs/pen/Gjwdov?editors=1100
Кроме того, что касается расположения элементов внутри навигации, я изо всех сил старался расположить элементы слева / по центру / посередине. Но правая сторона навигационной панели расширяется вправо, и это дает нижнюю полосу прокрутки. Какой наилучший метод размещения элементов?
Пожалуйста, дайте мне советы по улучшению моей работы. Спасибо.
Ответ №1:
Вам не нужно добавлять так много стиля для создания этого заголовка:
Начните с просмотра вашего тега main-header. Если ширина основного заголовка составляет 100% страницы, навигация по дочернему блоку также будет равна 100%.
Теперь, используя проценты, сделайте так, чтобы ваше меню соответствовало заголовку. в навигаторе есть 3 дочерних элемента, поэтому вы можете установить для каждой ширины 1/3 ширины, и это должно сделать их подходящими. Просто имейте в виду, что границы и отступы учитываются (попробуйте 30% ширины для каждого, указав их с плавающей точкой: слева для всех 3 дочерних элементов).
Комментарии:
1. Спасибо. Это также работает. Не могли бы вы еще раз проверить мой codepen. Я использовал технику, которую вы предоставили, но я не понимаю, почему в правой части навигационной панели есть пробел, и она простирается далеко вправо.
2. Не могли бы вы быть более конкретными? Я не уверен в пространстве, которое вы упоминаете.
3. Извините за поздний ответ. Моя проблема уже решена. Я ценю ваше время. Спасибо 🙂
Ответ №2:
Вам нужно очистить после последнего ul, где находится значение float: правильно; Потому что у вас есть float, а родительский элемент не имеет высоты, когда есть float. Поэтому после последнего ul поместите div class="clear" с помощью css .clear {очистить:оба;} Или, если вы используете bootstrap, у вас есть class clearfix. каламбур в навигационном классе="main-nav clearfix"
Комментарии:
1. Спасибо за вашу помощь, это работает. Я обновил его в codepen. Существует еще одна проблема, когда правая часть навигации расширяется вправо.