Комментарии 66
Приятное решение под современные браузеры.
Опера не учтена, так как ее процент на рынке США ничтожен.
Но что-то меня все равно смущает…
Опера не учтена, так как ее процент на рынке США ничтожен.
Но что-то меня все равно смущает…
Ну когда же CSS разовьётся настолько, чтобы в HTML коде не нужны были обёртки, да и вообще какие-то ссылки на вёрстку типа class=«col-2-3»? Вопрос риторический…
One Line CSS Grid
.oh,.ot,.tt{float:left;padding:0 2% 2% 0;width:48%}.ot{width:31%}.tt{width:65%}.cl{clear:both}
Очередная попытка применить плавающие элементы (float) для сеточной верстки. Да, дельфинов можно научить ползать по песку, но зачем? Так и с плавающими элементами — вместо того, чтобы заставлять их плавать по песку одинаково в разных браузерах, лучше использовать предназначенные для этого таблицы.
В итоге — статья ни о чём. Чисто поездить по мозгам начинающим html-верстальщикам. Потом эту дурь из них фиг выбьешь.
Единственный правильный способ верстки многоколоночных макетов — это сетка, она же таблица.
Пока массово не внедрили grid-верстку из CSS3, единственным правильным способом нормальной html-верстки таких остаются html-таблицы (<table>). Да, это несемантично, зато работает именно так, как нужно, во всех браузерах без каких-либо шаманств. Господа инженеры, оставьте семантику гуманитариям! Ваша задача — сделать так, чтобы работало! Плавающие элементы — они для плавающих элементов.
В итоге — статья ни о чём. Чисто поездить по мозгам начинающим html-верстальщикам. Потом эту дурь из них фиг выбьешь.
Единственный правильный способ верстки многоколоночных макетов — это сетка, она же таблица.
Пока массово не внедрили grid-верстку из CSS3, единственным правильным способом нормальной html-верстки таких остаются html-таблицы (<table>). Да, это несемантично, зато работает именно так, как нужно, во всех браузерах без каких-либо шаманств. Господа инженеры, оставьте семантику гуманитариям! Ваша задача — сделать так, чтобы работало! Плавающие элементы — они для плавающих элементов.
Реальное требование — это попиксельная верстка, потому что иначе извращения дизайнера разваливаются.
Гуманитарные 66% и 33% это НЕ попиксельная верстка.
Даже если вы сделаете 66.66666 и 33.3333% — это всё равно НЕ попиксельная верстка. Возьмите любой браузер, особенно ИЕ, и подёргайте за правый нижний угол, изменяя размеры окна. Ну надо же, плавающие элементы начнут плавать! ВНЕЗАПНО!
Google
Yandex
Facebook
Twitter
ВКонтакте
ЖЖ
Amazon
Озон
EBay
все эти сайты ВНЕЗАПНО так или иначе используют <table> для верстки, а не для семантики.
Потому что их делали инженеры, а не гуманитарии с их width: 66%
Гуманитарные 66% и 33% это НЕ попиксельная верстка.
Даже если вы сделаете 66.66666 и 33.3333% — это всё равно НЕ попиксельная верстка. Возьмите любой браузер, особенно ИЕ, и подёргайте за правый нижний угол, изменяя размеры окна. Ну надо же, плавающие элементы начнут плавать! ВНЕЗАПНО!
Yandex
ВКонтакте
ЖЖ
Amazon
Озон
EBay
все эти сайты ВНЕЗАПНО так или иначе используют <table> для верстки, а не для семантики.
Потому что их делали инженеры, а не гуманитарии с их width: 66%
Да-да, расскажите про нереальность попиксельной верстки маркетологам, которые наняли крутых дизайнеров :)
PS. Если вы вдруг не в теме, «крутые дизайнеры» на фриланс-биржах зарабатывают в 5-10 раз больше «крутых программистов». Соответственно, сменить программиста или верстальщика, который начинает что-то бормотать про несемантичность, в 5-10 раз дешевле, чем сменить дизайнера, который к тому же согласовал дизайн с биг-боссами.
PS. Если вы вдруг не в теме, «крутые дизайнеры» на фриланс-биржах зарабатывают в 5-10 раз больше «крутых программистов». Соответственно, сменить программиста или верстальщика, который начинает что-то бормотать про несемантичность, в 5-10 раз дешевле, чем сменить дизайнера, который к тому же согласовал дизайн с биг-боссами.
Или лыжи не едут, или…
Открыл только гугл и фейсбук… и где там таблицы? — Все сделано исключительно на дивах.
Открыл только гугл и фейсбук… и где там таблицы? — Все сделано исключительно на дивах.
А как же Responsive Design? Если на таблице такое и возможно сделать, то явно гораздо сложнее, чем на автономных блоках.
Вообще, я тоже сторонник таблиц там, где данные табличные. Но сетка — это все-таки никак не табличные данные. Так что применение таблиц в данном случае с точки зрения «подходит/не подходит» ничем не лучше, чем плавающих элементов.
Вообще, я тоже сторонник таблиц там, где данные табличные. Но сетка — это все-таки никак не табличные данные. Так что применение таблиц в данном случае с точки зрения «подходит/не подходит» ничем не лучше, чем плавающих элементов.
Назовите хоть один действительно популярный сайт, ну скажем Aleksa Rank < 1 000 000, который использует новомодный Responsive Design?
Во первых: не новомодный, ему уже > 2 лет.
Во вторых: для сайтов в < 1 000 000 довольно сложно (а главное дорого) сделать редизайн и перенести всё накопленное содержимое в новые реали быстро и сразу.
В третьих: совсем немного примеров (что вспомнилось, остальное погуглите сами): iso.org. bostonglobe.com (подразделение The New York Times Company), smashingmagazine.com, starbucks.com…
Вы и в четвёртых (последнее но главное): ВНЕЗАПНО! — ни один из приведённых вами сайтов не использует таблицы для вёрстки !, а использует таблицы для вывода в них табличных данных.
Если лично вы до сих пор вы верстаете на уровне каменного века таблицами — не навязывайте свои заблуждения другим.
Во вторых: для сайтов в < 1 000 000 довольно сложно (а главное дорого) сделать редизайн и перенести всё накопленное содержимое в новые реали быстро и сразу.
В третьих: совсем немного примеров (что вспомнилось, остальное погуглите сами): iso.org. bostonglobe.com (подразделение The New York Times Company), smashingmagazine.com, starbucks.com…
Вы и в четвёртых (последнее но главное): ВНЕЗАПНО! — ни один из приведённых вами сайтов не использует таблицы для вёрстки !, а использует таблицы для вывода в них табличных данных.
Если лично вы до сих пор вы верстаете на уровне каменного века таблицами — не навязывайте свои заблуждения другим.
А разве задача машинного чтения, ИИ, не связана с семантикой? Эти области тоже оставим гуманитариям?
> лучше использовать предназначенные для этого таблицы
Таблицы предназначены для вывода табличных данных. Шапка-содержимое-подвал — это не табличные данные. Не смешите людей своими выводами.
Таблицы предназначены для вывода табличных данных. Шапка-содержимое-подвал — это не табличные данные. Не смешите людей своими выводами.
В идеале — да, с этим никто и не спорит.
К сожалению, сеточную верстку придумали веке этак в XXVII-ом, а вот grid-layout в CSS до сих пор утверждают.
И пока этот самый grid-layout не станет для браузеров стандартом де-факто, HTML-таблицы останутся представлением по умолчанию для сеточной верстки в вебе. Нравится это семантистам-гуманитариям или нет.
Использовать плавающие элементы для сетки — это ересь и мракобесие. Оно совсем для другого предназанчено, вроде обтекания текстом картинки.
К сожалению, сеточную верстку придумали веке этак в XXVII-ом, а вот grid-layout в CSS до сих пор утверждают.
И пока этот самый grid-layout не станет для браузеров стандартом де-факто, HTML-таблицы останутся представлением по умолчанию для сеточной верстки в вебе. Нравится это семантистам-гуманитариям или нет.
Использовать плавающие элементы для сетки — это ересь и мракобесие. Оно совсем для другого предназанчено, вроде обтекания текстом картинки.
Использовать плавающие элементы для сетки — это ересь и мракобесие.
Равно как и использовать table для сетки.
Равно как и использовать table для сетки.
Предназначение у CSS одно — оформительское. Всё остальное только у вас в голове (в отличие от назначения элемента , описанного в спеке). Я имею полное право сделать поле рамкой, рамку тенью, а отступ смещением текста — если мне это нужно именно так. Так что хватит говорить глупости. Стабильность раскладки на плавающих блоках зависит только от кривизны рук.
Не верите? Проверьте: доклад Василия Аксёнова «Сетки для всего» с РИТа. СКБ Контур — не последняя контора на российском рынке.
Не верите? Проверьте: доклад Василия Аксёнова «Сетки для всего» с РИТа. СКБ Контур — не последняя контора на российском рынке.
назначения элемента <table>, чёртов парсер
Ну вот в этом и состоит отличие гуманитария от инженера.
Гуманитарий ссылается на то, что где-то там написано некоторым другим признанным гуманитарием.
Инженеру важно только то, как оно работает на практике.
Проблема в том, что, в отличие от инженеров, гуманитарии умеют писать зажигательные тексты про то, как оно должно быть в идеальном мире. У многих инженеров тоже хватило бы на это мозгов, но увы — они сталкиваются с бесконечным списком «но» и «если», и их статьи становятся слишком скучными для гуманитариев.
Гуманитарий ссылается на то, что где-то там написано некоторым другим признанным гуманитарием.
Инженеру важно только то, как оно работает на практике.
Проблема в том, что, в отличие от инженеров, гуманитарии умеют писать зажигательные тексты про то, как оно должно быть в идеальном мире. У многих инженеров тоже хватило бы на это мозгов, но увы — они сталкиваются с бесконечным списком «но» и «если», и их статьи становятся слишком скучными для гуманитариев.
Мне, строго говоря, плевать на вашу систематизацию «инженер/гуманитарий» — я не вижу в ней никакого смысла. Просто я знаю все «за» и «против» табличного и плавающего методов и выбираю плавающий. Точка.
Я-то глупый попытался показать вам успешный опыт, но вы же инженер! Голыми руками, без говна! (Хотя зачем-то сами ссылаетесь на опыт Alexa-100)
Я-то глупый попытался показать вам успешный опыт, но вы же инженер! Голыми руками, без говна! (Хотя зачем-то сами ссылаетесь на опыт Alexa-100)
Сорри, век конечно был XVII, а не XXVII :)
При верстке таблицами сложно работать с функционалом сайта — блоки могут появляться и исчезать (не только при переходе по страницам, но и при обновлении данных Ajax'ом). Если убрать какую-то ячейку из таблицы, придется переписывать значения rowspan и collspan.
Однако я тоже не очень дружелюбно отношусь к верстке плавающими блоками — стараюсь использовать где возможно inline-block
Однако я тоже не очень дружелюбно отношусь к верстке плавающими блоками — стараюсь использовать где возможно inline-block
ЭЭЭ зачем обновлять rowspan и colspan? Типичный макет «шапка — три колонки — подвал» состоит из трех строк и трех столбцов. Что там у них внутре — вообще неважно и никак не влияет на внешнюю таблицу.
Мне одному кажется, что вместо
Лучше использовать
а вместо padding использовать margin, ведь padding — это внутренние отступы, а для отступов между элементами предназначен именно маргин?
<div class="col-2-3">
Main Content
</div>
<div class="col-1-3">
Sidebar
</div>
и[class*='col-'] {...}
.col-2-3 {...}
.col-1-3 {...}
Лучше использовать
<div class="col 2-3">
Main Content
</div>
<div class="col 1-3">
Sidebar
</div>
и.col {...}
.col.2-3 {...}
.col.1-3 {...}
а вместо padding использовать margin, ведь padding — это внутренние отступы, а для отступов между элементами предназначен именно маргин?
Можно и так. В вашем случае вы выделяете отдельный класс для всех колонок, а в статье для этого используются селекторы:
Тут наверное дело в привычке и целесообразности введения нового класса.
В статье паддинги используются для эмуляции отступов. А вот маргины вместо паддингов тут использовать нельзя. У нас же колонки резиновые, а отступы фиксированные. Если мы сделаем маргины, то придется уменьшать колонки примерно как-то так:
Но CSS пока так не может.
По-моему, отступы между колонок лучше делать через «модули». У колонок мы убираем паддинги, а модулям назначаем маргины:
[class*='col-'] {...}
Тут наверное дело в привычке и целесообразности введения нового класса.
В статье паддинги используются для эмуляции отступов. А вот маргины вместо паддингов тут использовать нельзя. У нас же колонки резиновые, а отступы фиксированные. Если мы сделаем маргины, то придется уменьшать колонки примерно как-то так:
width: 66.6%-10px;
Но CSS пока так не может.
По-моему, отступы между колонок лучше делать через «модули». У колонок мы убираем паддинги, а модулям назначаем маргины:
.module {
margin: 0 10px;
}
И, кстати, поговаривают, что такие правила:
негативно сказываются на скорости отрисовки страницы уже в самом браузере…
*, *:after, *:before {...}
негативно сказываются на скорости отрисовки страницы уже в самом браузере…
Еще меньше заморочек с Gridset — gridsetapp.com
Лучший способ делать сетку увидел у Чикуёнка два года назад. Для пиксльной тоже подходит.
а в самом деле, что происходит с потерянной 0.01 %. это как-то сказывается, на больших мониторах, например?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Сетки без заморочек