Комментарии 62
Я никак не могу понять тенденцию использовать тэги не по назначению. Тэг <i> — выделение текста курсивом, какого черта делать из этого картинку.
Было такое, что я изменял чужой код. Для меня пустой тэг <i> — это отсутствующий текст курсивом. Я его удалил как мусор, т.к. текста нет и в той области сайта нет генерируемого в JS контента. А оказалось там были какие-то иконки. Пришлось исправлять назад.
Пожалуйста, не делайте геморрой при поддержке кода. Используйте тэги по назначению.
Было такое, что я изменял чужой код. Для меня пустой тэг <i> — это отсутствующий текст курсивом. Я его удалил как мусор, т.к. текста нет и в той области сайта нет генерируемого в JS контента. А оказалось там были какие-то иконки. Пришлось исправлять назад.
Пожалуйста, не делайте геморрой при поддержке кода. Используйте тэги по назначению.
Данный подход я позаимствовал у далеко не последнего по популярности фреймворка. И да, тег <i> не пустой, у него есть класс img-cat, что как бы намекает. Порой, выйти за рамки — это хорошо :)
Я понимаю, что я «никто и ничто» чтоб критиковать Twitter Bootstrap, тем не менее, даже у них — это плохая практика. Имхо.
А чем плох <span class=«img-cat»> или <div class=«img-cat»>. Длиннее на 2-3 символа? Зато понятно что это какой-то блок, а не текст курсивом.
А чем плох <span class=«img-cat»> или <div class=«img-cat»>. Длиннее на 2-3 символа? Зато понятно что это какой-то блок, а не текст курсивом.
У <img /> есть обязательный атрибут src, который сводит всю задумку на нет. Я сам бы рад использовать именно этот тег.
и
alt
тоже обязательный, кажетсяМожно написать сниппет для вашего текстового редактора, например
который по хоткею вставит что-нибудь такое:
Выход может быть в любом синтаксисе (haml если надо)
Или я не совсем понял проблемы?
testimg-800-600
который по хоткею вставит что-нибудь такое:
<img src="http://placekitten.com/800/600" width="800" height="600" alt="Test image">
Выход может быть в любом синтаксисе (haml если надо)
Или я не совсем понял проблемы?
Никто не запрещает оставлять значение src пустым (вуаля, src="", и всё замечательно).
Пихните в него пустую прозрачную гифку 1х1 пиксель и проблема решена. В погоне за непонятой экономии символов получается невероятная чушь, по сути можно всю html верстку сделать из тега i (+ огромная таблица стилей, перепределяющая поведение тега в заивисимости отустановленного класса) и будет экономно и черт ногу сломит что с этим делать. Полностью согласен что теги надо использовать по назначению.
вы забыли указать что весь этот длинный код просто ушел в css файлик
Меньше HTML-кода:
<i class="img-cat"></i>
вместо
<img src="<?=$this->theme->baseUrl?>/images/cat.png" style="width: 64px; height: 64px;" />
Думаю, это будет действительно экономить время!
вы забыли указать что весь этот длинный код просто ушел в css файлик
Вы указали всего лишь один пункт из 4. И при этом довели его до абсурда.
Ну незнаю, имхо абсурд это использование тега курсива для вывода бекграунда чтобы имитировать картинку. Ну да бог с ним, кому как нравится, просто потом тяжело разгребать все эти хитросплетения верстальщиков, когда шаблон на проект натягиваешь и мозг рушится от нелогичных решений, которые еще надо заставить работать, да к ним еще и IE хаки под каждый недобраузер применить.
Можно кстаии вообще свой тег сделать, типа и ему в css-ки прописать:
Давно такое не пробовал, но помнится что в Опере лет 5 назад прокатывало — делал свои теги для отображения модулей внутри WYSIWYG редатора.
Про пункты… 1 пункт уже давно многими для веба используется (у гугла вроде как 1 спрайт на всё), конечно всё подряд в спрайты не напихать, но например хорошо подходит для круговых обзоров товаров (не помню как это правильно называется, когда мышкой крутишь, а объект как бы крутится по одной или 2м осям, т.е. просто огромный бэкграунд передвигается), 2 пункт вытекает из первого, 3 пункт — раздутая css-ка или гора css-ок под каждый шаблон (но это не в коем слуучае не минус, у самого такая же штука, да и gzip никто не отменял)
Можно кстаии вообще свой тег сделать, типа и ему в css-ки прописать:
mycat {
width:
height:
background: url(tralalala)
}
Давно такое не пробовал, но помнится что в Опере лет 5 назад прокатывало — делал свои теги для отображения модулей внутри WYSIWYG редатора.
Про пункты… 1 пункт уже давно многими для веба используется (у гугла вроде как 1 спрайт на всё), конечно всё подряд в спрайты не напихать, но например хорошо подходит для круговых обзоров товаров (не помню как это правильно называется, когда мышкой крутишь, а объект как бы крутится по одной или 2м осям, т.е. просто огромный бэкграунд передвигается), 2 пункт вытекает из первого, 3 пункт — раздутая css-ка или гора css-ок под каждый шаблон (но это не в коем слуучае не минус, у самого такая же штука, да и gzip никто не отменял)
Тоже думал о том, чтобы ввести свой тег. Возможно сделаю это вообще настройкой, чтобы каждый мог указать по своему вкусу. Но изначально ориентировался на Twitter Bootstrap, как на очень популярное решение.
НЛО прилетело и опубликовало эту надпись здесь
Кстате для таких не хитрых программистов как вы, нормальный хитрый верстальщик засунет в этот тег знак пробела чтоб вы видели его и подумали 10 раз перед тем как удалить его.
О, Вы немного подправили коммент. Думаю это хороший вариант, чем не повод для пулл реквеста?
Полагаю, тег
<i>
в качестве жертвы был выбран из-за намеков на слова «icon» или «image». Кто-то курсив и тегом <em>
делаетДля курсива уже используется em Для курсива i использовать уже не верно вроде бы как)
НЛО прилетело и опубликовало эту надпись здесь
Вы в большей части бекенд программист?
Да.
Из чего вывод сделали, если не секрет?
Из чего вывод сделали, если не секрет?
Я фронтенд разработчик и сразу видно программиста когда он начинает рассуждать о тегах, css и подобных вещах. И часто видно что им встречается работа только плохих фронтенд разработчиков.
Если бы был фронтэнд разработчик — тэги и css были бы его головной болью. Я бы только контроеллеры-модельки пописывал. :)
Но нас есть верстальщик, на нем верстка + немного js, слайдеры, окошки и т.п. Я думаю фронтэнд разработчик это гораздо более широкое понятие. А вот верстальщик, да, видно что делает лишь бы выглядело как на макете и во всех браузерах. Порой кажется, что он даже не понимает как этот код потом будет преобразован во view. И что надо делать чтоб он был удобен в использовании, максимально стойким к правкам, которые всегда есть и будут.
Сейчас понемногу собираю материалы по верстке (хотя сам в ней довольно слаб) обязательные для ознакомления верстальщикам.
Но нас есть верстальщик, на нем верстка + немного js, слайдеры, окошки и т.п. Я думаю фронтэнд разработчик это гораздо более широкое понятие. А вот верстальщик, да, видно что делает лишь бы выглядело как на макете и во всех браузерах. Порой кажется, что он даже не понимает как этот код потом будет преобразован во view. И что надо делать чтоб он был удобен в использовании, максимально стойким к правкам, которые всегда есть и будут.
Сейчас понемногу собираю материалы по верстке (хотя сам в ней довольно слаб) обязательные для ознакомления верстальщикам.
А почему бы верстальщику не делать сразу во вьюхах код? Потом будет гораздо проще заменять текстовую рыбу на переменные. Правда здесь надо очень хорошо понимать что и в каком виде придёт в шаблон.
Я вообще против того, чтобы отдавать в интеграцию чистый html.
По поводу материалов можем пообщаться отдельно, у меня тоже есть мысли на этот счёт, но с другой стороны баррикад.
Я вообще против того, чтобы отдавать в интеграцию чистый html.
По поводу материалов можем пообщаться отдельно, у меня тоже есть мысли на этот счёт, но с другой стороны баррикад.
Я для генерации спрайтов использую glue, для автоматического расчёта размеров rails-sass-images
Там всё красиво + retina
Раньше compass'ом баловался, но он перестал быть актуальным чуть менее чем полностью
Для тестовых картинок http://placekitten.com/ & http://lorempixel.com/
Там всё красиво + retina
Раньше compass'ом баловался, но он перестал быть актуальным чуть менее чем полностью
Для тестовых картинок http://placekitten.com/ & http://lorempixel.com/
Хорошие инструменты, смотрел на них перед написанием либы. Но рассмотренная либа даёт ощутимо больше возможностей.
Можно уточнение в чем же потеряна актуальность компасса?
Например, добрая половина миксинов заменяется этим https://github.com/ai/autoprefixer
Вы так говорите, будто Compass — это только ценный мех работа с префиксами.
А что там такого ещё есть выдающегося?
Вполне хорошо живётся с http://bourbon.io/docs/ + compass для rails 4 нестабилен
Вполне хорошо живётся с http://bourbon.io/docs/ + compass для rails 4 нестабилен
НЛО прилетело и опубликовало эту надпись здесь
мне тоже кажется что по сравнению с компасом это неочень…
Не видел у них поддержки :hover, плюс хотелось реализации именно в стиле Twitter Bootstrap.
В спрайтах у compass есть «magic selectors» :hover, :active, :target http://compass-style.org/help/tutorials/spriting/magic-selectors/
Кстати, в 3-ем бутстрапе иконочки вынесены в отдельный репозиторий и тег
http://glyphicons.getbootstrap.com/
<i>
заменён на <span>
http://glyphicons.getbootstrap.com/
Отлично! Предложение перейти на <span> уже звучало несколько раз. И я добавил апдейтом в пост, что планирую сделать это изменение.
То-есть из-за того что функция возвращает список тегов развернулся эпичный срач какой тег юзать? (я не нашел больше в коде нигде теги)
Интересует простой китайский вопрос — а на хуа? Куда потом этот список тегов юзать, кроме как для примера?
Ну и сразу чтобы два раза не вставать — а чем compass не в стиле бутстрапа, раз ховер и компанию уже нашли?
Интересует простой китайский вопрос — а на хуа? Куда потом этот список тегов юзать, кроме как для примера?
Ну и сразу чтобы два раза не вставать — а чем compass не в стиле бутстрапа, раз ховер и компанию уже нашли?
Если картинка несет смысловое значение (относится к тесту) то следует использовать отдельные файлы изображений, тэг
Если же картинка играет роль иконки, бэкграунда и не несет смыслового значения, то лучше всего задавать ее в качестве
При этом очистить html-код от мусорных тегов, вроде предложенных вами
Генерация спрайтов — задача тривиальная и решенная уже много-много раз (полный список решений). Тем более, последнее время использование
Так, собственно вопрос, зачем еще одно решение задаче, которая уже давно решена?
img
с аттрибутом alt
. Если же картинка играет роль иконки, бэкграунда и не несет смыслового значения, то лучше всего задавать ее в качестве
background-image
для нужного тега. (найдено на stackoverflow)При этом очистить html-код от мусорных тегов, вроде предложенных вами
<i class="some-image"></i>
или предложенных в комментириях <span class="some-image"></span>
помогут псевдоэлементы ::before
и ::after
коих целых 2 на каждый тег (за исключением input
)Генерация спрайтов — задача тривиальная и решенная уже много-много раз (полный список решений). Тем более, последнее время использование
data:uri
считается более лучшим, так как экономит память и количество запросов к серверу, и, в качестве бонуса, избавляет от головной боли слежения за версией спрайта (если сайт обновляется и с некоторой периодичностью в спрайт добавляются новые иконки).Так, собственно вопрос, зачем еще одно решение задаче, которая уже давно решена?
Если все ради того, чтобы ускорить набор кода, то я вам советую выбрать хороший редактор. Например: webstorm с плагином emmet, live templates и автоматической подстановкой (включая размеры картинок) по клавише
tab
НЛО прилетело и опубликовало эту надпись здесь
Не стал вдаваться в поддробности по поводу тегов без псевдоэлементов, спасибо за дополнение.
А по поводу иконок — опять таки, если иконка прямо относится к тексту, то используйте img, если нет — все что угодно, но при этом по возможности семантично (лишние теги плодить не имеет смысла).
И, кстати, забыл упомянуть, что если верстка проекта нацелена на хорошие браузеры (IE9+) то есть еще возможность использовать множественные бэкграунды, для избавления от лишних тегов.
А по поводу иконок — опять таки, если иконка прямо относится к тексту, то используйте img, если нет — все что угодно, но при этом по возможности семантично (лишние теги плодить не имеет смысла).
И, кстати, забыл упомянуть, что если верстка проекта нацелена на хорошие браузеры (IE9+) то есть еще возможность использовать множественные бэкграунды, для избавления от лишних тегов.
data:uri бесспорно интересная технология, но в FF и IE работает далеко не оптимально. И этим никак нельзя принебречь. А за версией спрайта мне кажется следить очень просто: по времени его создания и времени обновления директории с исходными изображениями. Вот Вам и один из плюсов моего велосипеда :)
Для большей нагядности приведу пример кода из документации:
abstract class BaseController
{
public function init()
{
...
if (APP_ENV === APP_ENV_DEV) {
Yii::app()->sprite->generate(); // Regenerates sprite only if source dir was changed
}
...
}
}
Склонен не доверять результатам данного теста, тесты какие-то слишком синтетические. Я ради эксперимента провел аналогичный сравнительный анализ на одном из последних своих проектов: два теста на двух сборках проекта — одна с картинками в файлах, другая с картинками в
data:uri
(в data:uri
добавлялись только иконки, причем оптимизированные с помощью imageOptim, размер не более 2х кб на каждую). И результаты в FF (версии 21, 22) получились ровным счетом обратные, в сборке с data:uri
событие window.onload
срабатывало в среднем в 3-4 раза быстрее. Для чистоты эксперимента — в Сhrome и FF nightly 25.0a1 data:uri
быстрее в 2 разаСегодня в этом уже нет никакого смысла. Просто настройте себе HTTP/2
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Bootstrap CSS Sprite: синтаксический сахар для <img />