2013-12-10 4 views
1

У меня странная проблема. Все отображается как в Chrome, так и в IE, но не в FireFox. Смотрите ниже:Высота лития больше, чем у контейнера в FireFox

enter image description here

Код для навигации видно выше выглядит следующим образом

<nav> 
    <ul> 
     <li><a href="/">Home</a></li> 
     <li><a href="/about-us/">About Us</a></li> 
     <li><a href="/products/">Products</a></li> 
     <li><a href="/contact-us/">Contact Us</a></li> 
    </ul> 
</nav> 

И КСС

nav { 
    margin: 0 0 10px 0; 

    text-align: center; 
    background: #0054a6; 

    border-radius: 5px; 
    -moz-border-radius: 5px; 
    -webkit-border-radius: 5px; 
} 

nav li { 
    display: inline-block; 
    margin: 10px -4px 10px 0; 
} 

nav li a { 
    padding: 12px 75px; 

    text-decoration: none; 
    background: #0054a6; 
    color: #ffffff; 
} 

nav li a:hover { 
    background: #ffffff; 
    color: #000000; 
} 

Почему контейнер не такой же высоты, как это содержание ? Я не ищу исправления, просто объяснение, почему он делает это с моим кодом.

+0

Попробуйте 'нав Li {набивка : 0; } ' – mdesdev

+0

Попробуйте изменить набивку: 12px 75px для заполнения: 10px 75px в навигаторе ли селектор? Заполнение добавляет к высоте элемента, поэтому высота якоря на самом деле больше, чем li – barrigaj

+1

. Первое, что я попробую, - добавить 'display: block;' к вашим элементам 'a'. Я также предлагаю обернуть ваши 'li' в соответствующий контейнер (я предполагаю 'ul'), поэтому ваша разметка действительна. –

ответ

3

Вы видите эффекты верхней и нижней прокладки на встроенный элемент, ваши якоря. See this previous answer for some background. Я также сделал little fiddle here, который, на мой взгляд, сводит вашу проблему к чему-то довольно очевидному. (В принципе, если вертикальное заполнение превышает высоту линии на встроенном элементе, элемент может выходить за пределы контейнера.)

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

nav li a { 
    display: block; /* Fix breakout problem */ 
    padding: 12px 75px; 

    text-decoration: none; 
    background: #0054a6; 
    color: #ffffff; 
} 

Вы должны также обернуть li элементы в ul; они не могут быть детьми из элемента nav.

(я бы, вероятно, рассмотреть, чтобы избавиться от этой оберточной div, тоже, и просто ориентированные на nav элемент для вашего стиля. Я не уверен, что это ничего добавлять. This JSFiddle is my final adjustment to your code.)

+0

D'oh! Ну, это неловко. Я исправил код выше, теперь проблема имеет смысл. Но почему это не происходит в Chrome или IE? – ohiock

+0

Интересный вопрос. Я не могу попробовать его в IE, но если я поместил ваш код [as-is в JSFiddle] (http://jsfiddle.net/rZ77s/), он покажет проблему в Chrome для меня. Может быть, какой-то другой стиль продолжается? (Либо в другой вашей таблице стилей, либо, возможно, в таблицах стилей по умолчанию для пивоваров?) В любом случае, пока он работает сейчас ... –

+0

Ну, я использую сброс CSS, так что, возможно, там что-то происходит. Мне придется еще раз взглянуть на этот вопрос. Спасибо за вашу помощь. – ohiock

Смежные вопросы