Можете ли вы иметь <li>с, если они не ниже <ul>или <ol>? - PullRequest
7 голосов
/ 20 ноября 2010

У меня есть навигация, для которой я использую список.У меня это в <ul>, но это портит мой интерфейс, потому что у него странные автоматические поляЯ пытался без <ul>, и они, кажется, работают.Будет ли это работать во всех браузерах?Это законно?Кто-нибудь еще делал это раньше?

Ответы [ 5 ]

7 голосов
/ 20 ноября 2010

Вероятно, это работает в браузерах, потому что браузеры слишком просты, но это неверно, говорит validator :

Тип документа не допускает использование элемента "li"; отсутствует один из тегов "ul", "ol", "menu", "dir"

Ну, вы можете удалить настраиваемые поля в CSS. Это ваше единственное решение. Как правило, вы можете удалить его из тегов all <ul> в документах:

ul {
    margin: 0;
    padding: 0;
}

Если вам интересно, что такое padding, посмотрите здесь .

6 голосов
/ 20 ноября 2010

Это недопустимый HTML для использования <li> вне элемента ol, ul или menu.Намного лучше назначить класс элементу ul:

<ul class="nav">

, а затем использовать CSS для удаления поля и отступов:

.nav {
    margin: 0;
    padding: 0;
}
3 голосов
/ 20 ноября 2010

Это может не отвечать на ваш вопрос напрямую, но мне интересно, если вы используете сброс CSS?

Я обнаружил, что с тех пор, как начал их использовать, я больше не сталкиваюсь с подобными проблемами.http://developer.yahoo.com/yui/3/cssreset/

Кроме того, необходимо учитывать, что ваша навигация не обязательно должна быть в <li> (обязательно).Почему бы не сделать их просто ссылками в <div class="nav">

Надеюсь, это поможет!

3 голосов
/ 20 ноября 2010

Вы можете , и почти все браузеры распознают его, но это нехорошо, семантический HTML и не проверяет .

Попробуйте удалить полеи отступы для ul в вашей таблице стилей:

#the-specific-ul { margin: 0; padding: 0; }
1 голос
/ 20 ноября 2010

Комбинация UL и LI является одним из наиболее свободно интерпретируемых элементов во всем HTML.Это означает, что они имеют тенденцию сильно отличаться в зависимости от того, какой браузер вы используете.Как предлагают другие, сбросьте поля и отступы на 0. Но вы все равно должны делать это в сбросить таблицу стилей , чтобы вы могли поймать другие элементы, которые по-разному отображаются в браузерах.

...