Центрирование логотипа в навигационной панели

0

Мне сложно определить, как центрировать мой логотип внутри навигационной панели с неравномерным количеством ссылок на каждой стороне.

Я прочитал об использовании @media запросов с li: n-м ребенком в CSS с плавающими свойствами, чтобы исправить это, но я не смог.

Имейте в виду, что навигационные ссылки должны быть направлены к центру экрана, а не к сторонам (в отличие от этого: панель навигации с центрированным логотипом).

Вот мой код:

<header>
<div id="navbar">

        <ul>

            <li><a href="#minigolf"><div id="minigolfdiv" class="navdiv">MINIGOLF</div></a></li>

            <li><a href="#bowling"><div class="navdiv">BOWLING</div></a></li>

            <li><a href="#arrangementer"><div class="navdiv">ARRANGEMENTER</div></a></li>

            <li><a href="#"><div class="navdiv"><h2 id="logo">Funcity sport</h2></div></a></li>

            <li><a href="#priser"><div class="navdiv">PRISER</div></a></li>

            <li><a href="#aabningstider"><div class="navdiv">ÅBNINGSTIDER</div></a></li>

            <li><a href="#madogdrikke"><div class="navdiv">MAD & DRIKKE</div></a></li>

            <li><a href="#kontakt"><div class="navdiv">KONTAKT</div></a></li>

        </ul>

</div>

header{
display:block;
width:100%;
height:70px;
background-color:red;
}

#navbar{
display:inline-block;
height:70px;
width:auto;
float:left;
}

.navdiv{
height:100%;
width:100%;
padding: 0 10 0 10;
background-color:white;
border: 1px solid;
}

#logo{
background:url("media/logo.png") center no-repeat;
width:220px;
height:70px;
text-indent:-9999999999px;
margin: 0 0 0 0;
}

#minigolf, #bowling, #arrangementer, #priser,
#aabningstider, #madogdrikke{
height:1000px;
background-color:blue;
}

ul{
margin:0 0 0 40px;
padding:0 0 0 0;
list-style-type:none;
}

li{
display:inline-block;
height:70px;
background-color:white;
margin:0 0 0 0;
vertical-align:middle;
line-height:70px;
}

@media (min-width: 500px) {

    .navdiv li:nth-child(1), .navdiv li:nth-child(2), .navdiv li:nth-child(3){
        float:left;
    }

    .navdiv li:nth-child(5), .navdiv li:nth-child(6), .navdiv li:nth-child(7),      li:nth-child(8){
        float:right;
    }
}
  • 1
    Полностью не связаны, но вместо <div id='navbar'> вы можете использовать элемент <nav> в HTML5.
Теги:
center

3 ответа

0
Лучший ответ

Прежде всего, ваш код семантичен неправильно. A (элемент блока) нельзя обернуть в (встроенный элемент)

HTML:

<nav>
     <span>
          <a href="#minigolf">MINIGOLF</a>
          <a href="#minigolf">MINIGOLF</a>
     </span>
    <a href='logo' id="logo">logo</a>
     <span>
          <a href="#minigolf">MINIGOLF</a>
          <a href="#minigolf">MINIGOLF</a>
     </span>
</nav>

CSS:

nav { 
width: 100%; 
position: relative; 
display: block; 
}
nav span { 
float: left; 
width: 50%; 
box-sizing: border-box;  
}
nav span:first-child { 
padding-right: 50px; /* half the logo width */ 
}
nav span:last-child { 
padding-left: 50px; /* half the logo width */ 
}
#logo { 
width: 100px; 
position: absolute; 
top: 0; 
left: 0; 
right: 0; 
margin: auto; 
display: block; 
}
0

Возможно, это слишком дико, но что, если вы попробовали относительную ширину и дали элементы списка левой стороны дерева и логотип шириной примерно 50%/3.5 каждый, а остальные четыре части правой стороны шириной 50%/4.5?

0

Вы можете попробовать относительное позиционирование,

#logo { position: relative; top: 10px;//or any value you want. }

Или просто загрузите пример в JSfiddle, где я могу увидеть фактическую проблему. Вместо реальных изображений просто получайте div ширину и высоту.

С уважением

  • 0
    jsfiddle.net/U76Mc вот JSfiddle, странная вещь, которая произошла после того, как я добавил медиазапросы, - это крайний правый угол, внезапно он не соответствует другим.
  • 0
    Это совсем не странно. Вы устанавливаете ширину на 100% и задаете ей значение float: right, если размер экрана недостаточно велик, элемент должен перейти на следующую строку ... Для решения этой проблемы попробуйте указать div ширину в% вместо константы или display: ничего для определенного размера экрана.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню