Jump to content
  • 0

Пролема с горизонтальным меню в Хром


dimacat
 Share

Question

Приветствую ! Возникла проблема: верстаю горизонтальное меню. Должно быть такое:

G6dUOc6E.jpg

В Опере и Фоксе -- всё ок. Но в Хроме у меня вышло вот что:

KSnfxatv.jpg

Теперь покажу как я делал (опущу цсс-правила для шрифта, цвета и т.д. текста):

<div class="menu">
<ul>
<li class="company"><a href="#">О КОМПАНИИ</a></li>
<li class="services"><a href="#">УСЛУГИ</a></li>
<li class="portfolio"><a href="#">ПОРТФОЛИО</a></li>
<li class="information"><a href="#">ИНФОРМАЦИЯ</a></li>
<li class="contacts"><a href="#">КОНТАКТЫ</a></li>
</ul>
</div>

CSS:

.menu ul {
list-style-type: none;
}

.menu li {
display: inline;
}

.company {
padding-top: 25px;
background: url(images/o_kompanii.jpg) top no-repeat;
}

.services {
padding-top: 28px;
background: url(images/uslugi.jpg) top no-repeat;
}

.portfolio {
padding-top: 25px;
background: url(images/potfolio.jpg) top no-repeat;
}

.information {
padding-top: 24px;
background: url(images/informacija.jpg) top no-repeat;
}

.contacts {
padding-top: 24px;
background: url(images/kontakty.jpg) top no-repeat;
}

т.е. для каждого li я устанавливаю бэкграунд-картинку, и делаю поле вверху 25пх. В Опере и Фоксе, как я и говорил, всё клёво, как и надо, а вот в Хроме -- криво (см картинку выше). Т.е. Хром ну никак не реагирует на правило padding-top в данном случае. Однако, если установить, скажем для .company правило border: 1px solid #000; то всё становится как надо, но бордер-то мне не нужен. В общем, хотелось бы почитать ваши мысли по тому, как от этого безобразия в Хром избавиться.

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0


.menu li {
display: inline;
}

где-то здесь проблема.

Вообще, Хром правильно себя ведёт.

Устанавливать вертикальные паддинги следует блочным элементам.

Например display: inline-block или display: block;float:left решат проблему.

Второй вариант даже универсальнее.

Link to comment
Share on other sites

  • 0

Светлана, спасибо огромное, Ваш совет дал тот результат, который мне нужен был. Я воспользовался display: block; float:left. Такой вопрос: а почему криво работает с display: inline; ? Разве данное правило не предназначено как раз для того, чтобы сделать список горизонтальным ?

Link to comment
Share on other sites

  • 0
Разве данное правило не предназначено как раз для того, чтобы сделать список горизонтальным ?

Нет, оно предназначено для превращения элементов списка в аналог span-ов, вливающихся в обычную текстовую строку. С неизбежной потерей всех блочных свойств (напр., текст в таком элементе может переноситься на новую строку с разрывом border-ов).

Компромисс, при котором элементы выстраиваются в строку, не теряя блочных свойств — это как раз inline-block.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy