Попиксельная стрелка Tumblr

#html #css #tumblr

#HTML #css #tumblr

Вопрос:

Если вы посмотрите здесь:

http://www.tumblr.com/explore

Вы заметите фоновую рамку и маленький треугольник над пунктом меню «исследовать». Мне очень нравится дизайн Tumblr, поэтому я пытался извлечь из него все, что могу. Когда я использовал удобные инструменты разработчика Chrome, я увидел, что для маленького треугольника они «нарисовали» его пиксель за пикселем. У них 6 divs на пиксель в высоту. Ширина первого составляет 11 пикселей, второго — 9, третьего — 7…

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

Итак, все вы, профессионалы, каковы плюсы и минусы создания дизайна попиксельно с элементами HTML вместо использования изображения?

Ответ №1:

Преимущества в том, что он будет одинаковым во всех браузерах, даже в IE6, и он не делает дополнительный HTTP-запрос для метода фонового изображения.

Недостатком, конечно, является увеличенный вес HTML и CSS, уменьшенная семантика и более беспорядочный код. Лучшей альтернативой, даже для использования изображения, было бы использование псевдоэлемента, имеющего форму треугольника. Это не отнимет у чистого кода или семантики.

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

1. Как бы вы использовали псевдоэлемент для создания треугольника? И как долго они поддерживаются?

2. Границы стрелок CSS не всегда получаются симметричными. Это одна из причин, по которой мне не нравятся VideoJS.

3. @BrianNickel: Посмотрите на ссылку, которую опубликовал ЭНевес — она идеально симметрична.

4. Хорошо, для этого приложения это не проблема, но для других приложений это может быть. Левая граница занимает всю высоту объекта, то есть верхняя и нижняя границы занимают верх (width - 1px) , а правая граница занимает верх (height - 2px) . Вот почему VideoJS выглядит так плохо.

Ответ №2:

Хотя это обеспечивает прозрачность в IE6, как отмечают другие, это не очень убедительно, поскольку вы всегда можете использовать прозрачный GIF для этого приложения.

Я бы сказал, что этот хак здесь для того, чтобы на один вызов сервера стало меньше. Это имеет два основных преимущества:

  • Мгновенная видимость. Если вся информация, необходимая для отображения изображения, содержится в CSS и HTML, его можно отобразить как можно скорее. Нет дополнительного сетевого вызова.
  • Выход из критического пути. На этой странице загружается много файлов. Поскольку браузеры ограничивают количество одновременных подключений к серверу, любой файл, который вы можете удалить из процесса запуска, увеличит время загрузки.

Альтернативой может быть использование URL-адреса данных, содержащего прозрачный PNG. Это лучше тем, что не зависит от взлома, но хуже тем, что IE6 и IE7 не могут его поддерживать. Более распространенной практикой является объединение всех изображений, используемых страницей, в спрайтовое изображение и использование CSS-фонов background-position для обрезки точного изображения. Недостатком этого является то, что по-прежнему требуется сетевой вызов, но его можно связать с URL-адресом данных, если вам не нужен IE6 или IE7.

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

Вкратце:

ПЛЮСЫ

  • Быстрый рендеринг
  • Сетевой вызов не требуется
  • Улучшено время загрузки страницы
  • Кроссбраузерная поддержка

МИНУСЫ

  • Это просто не то, как вы должны что-то делать.

Лично мне это нравится, и я бы обязательно сделал что-то подобное, если бы пришлось.