RSS

Прокоментируй статью, хотя бы пару слов!

Комментарии:

  • #1avatar

    selenit2 (selenit)

    26.02.2010 03:50:44

    Спасибо за перевод! Можно упомянуть о еще одном премуществе перед float-ами - возможностью это дело центрировать. И поток "чистить" не надо. В этом году FF2, на мой взгляд, можно уже не брать в расчет и отказаться от промежуточной блочной обертки.

    Но вот как лучше всего быть с нежелательными пробелами между LI-шками? Особенно с учетом "особо интеллектуального" парсинга IE6-7, где эти пробелы оказываются не между, а внутри их. Лично я за то, чтобы честно убрать пробелы (особенно при динам. выводе) и не дурить головы, но встречал в Сети такую агитацию за "читабельность исходников", ради которой предлагали чуть ли не обнулить font-size для списка и вернуть дефолтный для его элементов (хотя чаще обходятся margin-right: -.33em :). Что будет правильнее со всех точек зрения?

  • #2avatar

    Елена Лунная

    01.03.2010 15:33:06

    Прошу прощения за поздний ответ.
    Да, обёртка для ff2 приведена просто для полноты картины. На самом деле можно её не использовать. Наоборот, я призываю "Не верстать под старые браузеры". В этом году я надеюсь к ним можно будет отнести и FF2 и IE6 - код без костылей для них будет гораздо читебельней.
    Что касается "интеллектуального" парсинга предпоследних версий ие, то я не придумала подходящего решения со времени вашего вопроса. Честно говоря на проекте в котором я использовала inline-block (http://new.kolomenka.ru) я плюнула на отличия в отображении данных блоков в ие, поэтому конечно рендеринг отличается на пару пикселей.
    Вариант обнулить родителю и вернуть дочерним элементам не плох я считаю, при отключённых стилях и картинках это не затронет читабельности, а это главное. Убрать отступы совсем - не вариант. Отступы должны быть, для придания дизайну лёгкости, если всё будет в кучу, будет некрасиво. Если заказчик и дизайнер не настаивают на отображении "пиксель в пиксель", то лучше оставить как есть, возможно это подстегнёт людей обновлять ие.

  • #3avatar

    selenit2 (selenit)

    02.03.2010 02:54:14

    Пардон, наверное, я неточно выразился: я имел в виду убирать не визуальные отступы, а пробелы в коде между закрывающим тегом предыдущего и открывающим тегом следующего LI в списке (вот эту проблему: http://habrahabr.ru/blogs/css/51297/, для меня она оказалась шоком:). Чтобы визуальные отступы однозначно регулировались CSS-ом, а не требовали нетривиальных поправок (притом не для всех браузеров). Вариант с обнулением-возвращением шрифта, имхо, все-таки ужасен, как минимум невозможностью выставить потомку относительный размер...

  • #4avatar

    Елена Лунная

    02.03.2010 12:42:02

    А... вы про это. Для пользователей, кто не в курсе темы топика,. кратко поясню:
    Дело в том, что между

    <ul><li></li><li></li></ul>
    и
    <ul><li></li>*Перевод на другую строку*<li></li></ul>
    есть разница. Даже если писать плавающие дивы с переводом строк вместо li. Если вы пройдётесь яваскриптом по дереву дочерних элементов <UL>, и посмотрите типы элементов, то увидите, что в большинстве браузеров перевод строки будет определён как textNode. В ие 6-7 - текстового элемента не будет, т.к. он игнорирует </li> (в топике хабра вы это сами написали). Ие 8 тоже не добавит текстовый элемент, хотя отобразит правильно.
    http://usabili.ru/labs/childNodes.html
    типы элементов можно посмотреть тут
    http://www.javascriptkit.com/domref/nodetype.shtml
    Теперь о решении. Мне очень нравится читабельность кода, но ей бесспорно нужно поступиться, если речь идёт о чём-то более важном. Поэтому я за то, чтобы убрать пробелы. Если закрыть их комментариями - это только породит commentNode вместо textNode - что есть лишние элементы в DOM. Третий вариант (с переносом последней скобки открывающего тега на другую строку) на мой взгляд некрасив со всех точек зрения. Предложенный вами вариант - убрать вообще закрывающие теги </li> - не встретит одобрения у верстальщиков шаблонов XSLT, где одиночный открывающий тег можно вставить только как текстовый элемент, а в остальных случаях способ приемлем. Вообще xml смотрится красивей чем sgml на мой взгляд (только если не увлекаться и переходить на xhtml).
    Помните, что разметку которую вы пишите - в большинстве случаев никто не увидит. Лишние элементы в DOM - никому не понравятся. Если для одинакового отображения вам нужно вообще весь код в строчку записать - пишите. Кому надо используют tabifier.
    Лишние textNode - будут очень вредить если вы используете яваскрипт и совершаете какие-то операции с потомками элемента. В одном из проектов пришлось вообще делать вывод разметки без переносов строк (свойство xsl:output indent="no")


Чтобы оставить комментарий нужно войти или зарегистрироваться (Регистрируйтесь за 5 секунд, без подтверждения email и т.п.).
Либо волшебно используйте ваш логин в Google, Яндекс, рамблер или ЖЖ чтобы войти через Open_ID
Подпишитесь на статьи через RSS

15 самых популярных статей: