Подтвердить что ты не робот

Использует ли <li> без добавления тегов <ul>?

В чем опасность вставки <li>...</li> на страницу без добавления элементов (ов) в блок <ul>? Например:

<div style="border:solid 1px red;">
    <li>Item</li>
    <li>Another Item</li>
    <li>Yet Another Item</li>
</div>

Валидация - это наименьшее из моих проблем, мне интересно, что это может сломать в браузерах, чтобы пользователь мог просматривать страницу по своему усмотрению.

4b9b3361

Ответ 1

Это не допустимая разметка. Если она отображается правильно, это только вопрос удачи.

Как вы, кажется, определяете опасный "разрывать в браузерах возможность просмотра конечной пользователем страницы по назначению", тогда да, это опасно.

Браузеры стараются изо всех сил компенсировать недействительную разметку, но нет гарантии вообще, страница будет отображаться правильно.

Вы говорите, что валидация - это наименьшая из ваших проблем, пожалуйста, передумайте и посмотрите Зачем проверять?. Если вам небезразлична правильность отображения вашей страницы без каких-либо причуд, подтвердите ее.

Наконец, HTML Tidy может помочь вам исправить существующий html.

EDIT: Я отправил ваш фрагмент в браузеры, чтобы посмотреть, как он будет отображаться разными браузерами.

Ответ 2

Использование недопустимой разметки, такой как ваш пример, может привести к неожиданному поведению на разных страницах. Если вы используете действительную разметку, браузеры будут (или должны) отображать ваш контент на основе спецификации. Но если вы используете недопустимую разметку, браузер попытается перекрыть разметку и отобразить страницу, как она думает, что вы намеревались это сделать. Иногда они будут отображать его, как вы хотите, иногда нет. Вот пример из Firefox 3.5 на Mac.

alt text

Первый список - это ваш код, но с соответствующим тегом <ul>, заменяющим тег <div>. Второй список - это ваш код. Обратите внимание, что во втором списке отсутствуют поля по умолчанию слева и пули.

В принципе, ничто не умрет, если вы используете недопустимую разметку, подобную этой, но это действительно плохая практика, так как это приведет к неожиданным и непоследовательным результатам.

Ответ 3

То же самое, что и теги <td> внутри <p>. Конечно, это может работать как-то в некоторых браузерах, но это определенно будет нарушено. Поведение такой конструкции undefined, нет никаких гарантий того, как она будет работать в разных браузерах. Чтобы не говорить о доступности, программы чтения с экрана были бы весьма озадачены в отношении такого типа структуры.

Почему вы не можете использовать правильный тег <ul> или <ol>? Его можно создать в стиле и обрабатывать так же, как <div>.

Ответ 4

Я не могу понять, почему он не будет отображаться правильно, хотя он не должен существовать на нем, он будет отлично отображаться.

Вероятно, вам стоит положить <ul> преимущества нет для разметки, которую вы используете, не делая ее правильно.

Ответ 5

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

Но помимо этого существует также гипотетический вопрос о том, насколько хорошо он может работать на комбинациях браузера и платформы, которые вы не тестировали, либо потому, что:

  • вы не включили их в тестовый набор
  • они еще не существуют или
  • они недоступны для тестирования (например, веб-сканеры)

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

Также стоит упомянуть, что LI-метки легче отслеживать, если вы выполняете скриптинг, или если кто-то делает скрипты на вашей странице (например, Greasemonkey).

Ответ 6

Неожиданное поведение рендеринга в разных браузерах? SEO?

Ответ 7

Реализация обозревателя должна решить, что с ним делать. Если вы действительно хотите это сделать, проверьте его во всех браузерах, которые вы хотите поддержать, прежде чем использовать его.

Также обратите внимание, что поведение браузеров может измениться в будущем.

Ответ 8

Dangerous? Это ничего не взорвет. Это может вызвать проблемы, если макет для вас важен.

Вы просто не узнаете, как браузер сделает это.

Ответ 9

Я не могу себе представить, почему вы не хотите помещать теги <ul> или <ol>, они определяют список. Затем у вас есть контроль над тем, как отображается список, не оставляя его для выбора браузером, что важно. Отсутствие их - просто запись недопустимой разметки, да, это будет работать в некоторых браузерах, но идентификатор определенно сохранит их.

Ответ 10

Большинство браузеров, вероятно, возьмут это и запустит с ним, но есть два разных типа списка: Unordered <ul> и упорядоченные списки <ol> , где упорядоченный список содержит номера для каждого элемента.

Вместо использования <li> теги, вы можете использовать "& bull;" (& bull;), а затем a < br/ > в конце каждой строки.

Ответ 11

Я не буду полагаться на неуказанное поведение. Просто замените <div> на <ul> и используйте CSS для его стилизации.

Ответ 12

Как веб-дизайнер/разработчик, вы знаете, что уходите, когда начинаете писать HTML, даже Frontpage или Microsoft Word не будут генерировать.

Придерживаясь стандартов, это улица с двусторонним движением. Если мы хотим, чтобы разработчики браузера создавали быстрые, надежные и последовательные механизмы рендеринга, нам нужно встретить их на полпути, создав последовательный, чистый и хорошо сформированный HTML.