Jump to content
  • 0

Пустые тэги(пробелы)


systemiv
 Share

Question

Доброй ночи Уважаемые!

Как Вы считаете нужен ли пробел в пустом тэге?

Привожу пример:

<div style="clear:both"></div>

или

<div style="clear:both"> </div>

Как Вы считаете, со стороны семантики, как будет более правильно? И не упоминается ли про это в стандартах?

Link to comment
Share on other sites

21 answers to this question

Recommended Posts

  • 0

смотря в какой роли используется этот div, если это линия, то там ничего не нужно, если как отступ(пустая строка), то можно и пробел, но в любом случае я бы отказался от пробела - лишний трафик и не нужный смысл

Link to comment
Share on other sites

  • 0

Когда-то я сталкивался с некроссбраузерностью поведения блоков без нбсп, и я стал совать нбсп чтобы было кроссбраузерно, а затем я уменьшал там шрифт, ставил высоту и оверфлоу хидден и т.п. упражнения. Когда изучил этот вопрос поэкпеременировал, понял что поднялся еще на 1 ступеньку :) Щас вот умиляюсь, сорри за офтоп.

Link to comment
Share on other sites

  • 0

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

Link to comment
Share on other sites

  • 0

ЕМНИП, проблемы с пустыми ячейками были актуальны где-то во времена NS4 и NS6 (возможно, включительно). Во всём более новом вполне хватает empty-cells:show (если ошибаюсь — киньте в меня контрпримером).

Другое дело, что на пустые теги любит ругаться FF-овское расширение "HTML validator" в режиме Tidy (по умолчанию). Но это не имеет отношения ни к валидности как таковой, ни тем паче к кроссбраузерности, это свои внутренние тараканы алгоритма Tidy.

И тем не менее, прислушаться к нему стоит: так ли нужен в коде пустой элемент, нельзя ли заменить его псевдоэлементом или вообще бордером каким-нибудь? Например,

как отступ(пустая строка)
целый элемент уж точно не нужен — для этого есть margin-ы соседей.
Link to comment
Share on other sites

  • 0

Доброй ночи Уважаемые!

Как Вы считаете нужен ли пробел в пустом тэге?

Привожу пример:

<div style="clear:both"></div>

или

<div style="clear:both"> </div>

Как Вы считаете, со стороны семантики, как будет более правильно? И не упоминается ли про это в стандартах?

Нет, не нужен. Лишний груз и смысла нет.

Link to comment
Share on other sites

  • 0

Кстати, слоника-то я и не приметил :). Для клиринга флоатов целый пустой элемент — дикий анахронизм. Сейчас для этой цели используют либо создание нового контекста форматирования для контейнера (обычно через overflow:hidden, иногда через display:inline-block/table/table-cell), или вариации на тему clearfix-а (благо прогресс позволил сделать их совсем компактными и изящными).

Link to comment
Share on other sites

  • 0

Например,

как отступ(пустая строка)
целый элемент уж точно не нужен — для этого есть margin-ы соседей.

а если скажем нужно разместить в две строчки по два блока разной высоты с float:left, да еще с отступом, чтобы не слипались

<div style="clear:both;"> </div>

в самый раз, ну а если отступ нужен побольше, то тут да, лучше использовать отступы

Link to comment
Share on other sites

  • 0

Я порой все еще использую кроссбраузерный клирер, пустой элемент, в частности, чтобы не парить себе мозг, если есть попапы, ховеры и прочее, выступающие за габариты родительского блока с оверфлоу, хотя, это скорее исключение. Вот за <a name="top"></a> надо растлевать на костре, прочее конечно тоже не хорошо, но пока терпимо, ибо живут еще на свете браузеры, которые не понимают много чего.

Link to comment
Share on other sites

  • 0
разместить в две строчки по два блока разной высоты с float:left, да еще с отступом, чтобы не слипались

margin-bottom более высокому блоку разве недостаточно?

думаю, что нет может получиться такая лажа

|1||2|

|_||3|

|4|

когда нужно

|1||2|

|_|

|3||4|

Link to comment
Share on other sites

  • 0

Минуточку, разве clear:left у нечетных элементов при таком раскладе не предполагается?

вариант использовать 
 c clear: both;

Сорри, совсем не вариант, особенно в 2012-м.

:) ну так можно долго спорить как лучше и удобнее делать

итог то один

Link to comment
Share on other sites

  • 0

SelenIT, вот спасибо вам за ссылку, я её еще с месяц назад потерял не мог найти :)

Насчет тега br - ТС создал тему из-за сомнений семантики, использовать br для создания отступа - совсем не семантично.

Link to comment
Share on other sites

  • 0
итог то один

Это при стандартных условиях он один :). А шаг вправо/шаг влево (просмотр с мобилки, печать, RSS, поисковики, copy/paste и т.п.) — так разница в итоге и проявляется...

И общее правило в таких случаях — чем меньше лишнего, тем меньше проблем. Исключения тоже бывают, но гораздо реже.

Link to comment
Share on other sites

  • 0

Минуточку, разве clear:left у нечетных элементов при таком раскладе не предполагается?

вариант использовать 
 c clear: both;

Сорри, совсем не вариант, особенно в 2012-м.

а что такого плохого? <br> короче чем <div style="clear:both"> </div> и работает, и не осуждается спецификацией html5

Link to comment
Share on other sites

  • 0

а что такого плохого? <br> короче чем <div style="clear:both"> </div> и работает, и не осуждается спецификацией html5

Длиннее, чем ничего (как в случае контекста/clearfix-а). Работает не везде и не всегда (проверьте в IE7). Является по сути текстовым контентом (а-ля символом \n), не несущим смысловой нагрузки и потому засоряющим документ. Негибко.

Link to comment
Share on other sites

  • 0

а что такого плохого? <br> короче чем <div style="clear:both"> </div> и работает, и не осуждается спецификацией html5

Длиннее, чем ничего (как в случае контекста/clearfix-а). Работает не везде и не всегда (проверьте в IE7). Является по сути текстовым контентом (а-ля символом \n), не несущим смысловой нагрузки и потому засоряющим документ. Негибко.

Полностью согласен, сам пользуюсь overflow:hidden, ну и :after иногда :)

Только отсекать область с плавающими элементами от следующих под ними блоков, оборачивая плавающие элементы еще одним блоком, не всегда удобно на практике, особенно если контент генерируется скриптами.

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