Каковы опасности вставить <li>...</li>
в страницу, не включая объект (объекты) в a <ul>
блок? Например:
<div style="border:solid 1px red;">
<li>Item</li>
<li>Another Item</li>
<li>Yet Another Item</li>
</div>
Проверка является наименьшим количеством моих проблем, я задаюсь вопросом, что это могло бы прервать браузеры для способности конечного пользователя просмотреть страницу, как предназначено.
Это вообще недопустимая разметка. Если он отображается правильно, это всего лишь вопрос удачи.
Поскольку вы, кажется, определили опасность как «нарушение работы браузеров для возможности конечного пользователя просматривать страницу должным образом», то да, это опасно.
Браузеры изо всех сил пытаются компенсировать недопустимую разметку, но нет никакой гарантии вообще , что ваша страница будет отображаться правильно.
Вы говорите, что проверка - наименьшая из ваших проблем, пожалуйста, подумайте еще раз и посмотрите Зачем проверять? . Если вы заботитесь о том, чтобы ваша страница отображалась правильно, без причуд, тогда подтвердите.
Наконец, HTML Tidy может помочь вам исправить существующий HTML.
РЕДАКТИРОВАТЬ: Я отправил ваш фрагмент на browsershots.org, чтобы посмотреть, как он отображается в разных браузерах .
] Использование недействительной разметки, как в Вашем примере, может привести к неожиданному поведению на разных страницах. Если вы используете правильную разметку, браузеры будут (или должны) отображать ваше содержимое в соответствии со спецификацией. Но если вы используете неправильную разметку, браузер попробует интерпретировать разметку и отобразит страницу так, как [] думает, что вы имели в виду []. Иногда они будут отображать ее так, как вы хотите, иногда нет. Вот пример из Firefox 3.5 на Mac.[
] [][][
] []Первый список - это ваш код, но с правильным [ ]В принципе, ничто не умрет, если вы используете такую недействительную разметку, но это действительно плохая практика, так как это приведет к неожиданным и непоследовательным результатам.[]
] тегом, заменяющим [[
]
]Это перекликается со всеми остальными ответами, отчасти: с любой разметкой возникает эмпирический вопрос, работает это или нет в браузерах, в которых вы его тестируете. Вы тестировали его на всех ваших браузерах, и вы были счастливы. Это круто и это огромная часть работы. [
] [] Но помимо этого, есть и гипотетический вопрос о том, насколько хорошо он может работать на комбинациях браузер-платформа, которые вы не тестировали, либо потому что:[
] []Для этого набора, который всегда становится актуальным рано или поздно, вы должны следовать стандартам - когда это возможно - и использовать прилагаемые UL или OL тэги (в данном случае). [
] []Стоит также упомянуть, что это облегчает отслеживание тегов LI, если вы выполняете скриптинг, или если кто-то выполняет скриптинг на вашей странице (например, Greasemonkey).[
]] Не вижу причин, почему он не будет корректно отображаться, в то время как он не должен существовать сам по себе, он будет отлично отображаться.[
] [] Вам, вероятно, следует поместить его в []
], есть []нет[] преимуществ разметки, которую вы используете, а не делаете ее правильно.[[
] Как веб-дизайнер/разработчик вы знаете, что начинаете писать HTML, который даже Frontpage или Microsoft Word не сгенерировали бы. [
] [] Придерживаться стандартов - это улица с двусторонним движением. Если мы хотим, чтобы разработчики браузеров создавали быстрые, надежные и последовательные движки рендеринга, мы должны соответствовать им наполовину, создавая последовательный, чистый и хорошо сформированный HTML.[
].] Опасно? Ничего не взорвётся. Это может вызвать проблемы, если макет каким-либо образом важен для вас.[
] []Вы просто не будете знать, как браузер отобразит его.[
].]Не могу представить, почему вы не хотите вставлять теги []
] или [[
]
], они определяют список. Затем вы получаете контроль над тем, как отображается список, не оставляя его на усмотрение браузера, что является важным. Пропустить их - это просто написать некорректную разметку, да, в некоторых браузерах это сработает, но id определённо оставит их в списке.[[
] Большинство браузеров, вероятно, возьмут это и будут работать с ним, [], но [] существует два разных списка типов: Неупорядоченные
]Вместо использования тэгов
] Я бы не стал полагаться на неопределённое поведение. Просто замените это []
]
] и используйте CSS для стилизации.[]. [
Это было бы до реализации браузера, чтобы решить, что с этим делать. Если вы действительно хотите сделать это, проверьте его во всех браузерах, которые вы хотите поддержать, прежде чем использовать его.
также обратите внимание, что поведение браузеров может измениться в будущем.
Неожиданное поведение рендеринга на разных браузерах? SEO?
-121--1382754- Это то же самое, что и использование , теги
внутри
. Конечно, это может как-то работать на некоторых браузерах, но это определенно будет нарушено. Поведение такой конструкции представляет собой undefined , нет никаких гарантий о том, как он будет работать на разных браузерах. Не говорить о доступности, программы считывателя экрана будут вполне озадачены по поводу этой структуры.
Почему вы не можете использовать правильное
или
, тег
? Он может быть в стиле и обрабатывает так же, как
Я согласен со многими комментариями, предполагающими, что лучше использовать существующее ядро базы данных. Однако в качестве попытки фактически ответить на вопрос:
Это невозможно. Флажок - это компонент браузера с окнами. Лучшее, что вы можете сделать, это сделать свой собственный контроль, который выглядит как флажок, но на самом деле состоит из изображения для каждого состояния.
Вот несколько примеров элементов управления, которые используют образы вместо флажков:
-121--4565888-Неожиданный рендеринг СЕО?