Java, UX, HTML, CSS, WEB-design

Вопросы и ответы по кодированию с Крисом Койером: размер коробки и CSS-спрайты

Краткое описание по статье Вопросы и ответы по кодированию с Крисом Койером: размер коробки и CSS-спрайты

Название: Вопросы и ответы по кодированию с Крисом Койером: размер коробки и CSS-спрайты . Краткое описание: [ad_1] ⭐ Крис Ко . Дата публикации: 17.02.2022 . Автор: Алишер Валеев .

Для чего создан сайт Novosti-Nedeli.ru

Данный сайт посвящен новостям мира и мира технологий . Также тут вы найдете руководства по различным девайсам.

Сколько лет сайту?

Возраст составляет 3 года

[ad_1]

  • Крис Койер

  • 0 Комментарии

Вопросы и ответы по кодированию с Крисом Койером: размер коробки и CSS-спрайты

  • 8 минут чтения

  • Кодирование, CSS

Краткое резюме ↬

Здорово, народ! Добро пожаловать в новое воплощение вопросов и ответов Smashing Magazine. Ваш вопрос может касаться очень конкретной проблемы, с которой вы столкнулись, или это может быть вопрос о философском подходе.

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

Размер коробки

Вопрос от Брэда Фроста:

Что вы думаете об идее Пола Айриша подать заявку? box-sizing: border-box каждому элементу на странице?

Еще после прыжка! Продолжить чтение ниже ↓

С использованием box-sizing очень полезен, особенно для мобильного и адаптивного дизайна (например, получение полностью гибких полей формы с фиксированным количеством отступов — это здорово). Но я опасаюсь применять это ко всему.

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

Кабинетный критик этой методики скулил бы о производительности универсального селектора (*). Это нытье было в значительной степени развенчано. Хотя этот селектор технически «медленнее», чем что-то вроде селектора имени класса, разница незначительна, за исключением крайних случаев чрезмерного использования или на страницах с миллионами элементов. Делая что-то, что уменьшает один HTTP-запрос, разница как минимум на порядок больше, чем оптимизация селекторов.

Для справки, полный и рекомендуемый синтаксис таков:

* {
   -webkit-box-sizing: border-box;
   -moz-box-sizing:    border-box;
   box-sizing:         border-box;
}

При этом вы получаете идеальную поддержку браузера во всем — даже в подавляющем большинстве мобильных Webkit. Заметным исключением является IE 7 и ниже. Я не хочу открывать банку с червями, но использование IE 7 уже низкое и падает намного быстрее, чем IE 6, поэтому очень скоро поддержка только IE 8+ станет обычным явлением.

Вот краткий пример того, почему использование этой блочной модели приятно:

  • Теперь, когда вы устанавливаете ширину и высоту, элемент всегда будет такой ширины и высоты, независимо от отступов и границ.
  • Это значительно упрощает математику. Например, вы можете легко создать сетку из четырех столбцов, сделав ширину каждого столбца равной 25% и сделав их плавающими. Вы можете сделать желоба из пиксельного заполнения и не беспокоиться, что они расширят столбцы и сломают сетку.
  • Это также очень полезно для текстовых областей, которые вы хотите заполнить до ширины их родителя, что вы можете сделать, только установив их ширину на 100%. Но тогда вы не сможете иметь отступы, если не используете эту блочную модель, чтобы они не выходили за пределы ширины родителя.

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

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

Рабочий процесс CSS-спрайтов

Вопрос от Мэтта Бэнкса:

Каков ваш предпочтительный метод создания спрайтов CSS и управления ими? Используете ли вы Photoshop для ручного создания собственных спрайтов, веб-сервиса или приложения, такого как SpriteRight? Какой рабочий процесс лучше и проще всего использовать для обновления спрайтов новыми изображениями?

У меня есть статья 2010 года о моем рабочем процессе для спрайтов CSS, в которой шаг 1 таков:

Полностью игнорировать спрайты. Сделайте каждое фоновое изображение отдельным изображением и ссылайтесь на них как таковые в CSS.

Конечно, я не предлагаю вам не использовать спрайты. Наоборот: я думаю, что использование спрайтов и наличие хорошего рабочего процесса имеют первостепенное значение для того, чтобы быть хорошим кодировщиком интерфейса, и часто это первое, что вы можете сделать для оптимизации производительности в Интернете. То, что я пытался сказать, это не делать предварительную оптимизацию. Предварительная оптимизация — это зыбучие пески для разработчиков: вы тратите много времени, размахивая руками, но ничего не добиваетесь. Вы знаете, что спрайты хороши, и поэтому вы сразу же начинаете строить с ними, тратя массу времени на настройку, корректировку и расчет спрайтов, чтобы они были в самый раз во время разработки.


(Изображение: электрический нерв)

Это пустая трата времени. Вместо этого игнорируйте спрайты в новых проектах до тех пор, пока вы не достигнете комфортного уровня зрелости в своем CSS или пока не начнете работать. Затем найдите время, чтобы пройти и привести себя в порядок. Это будет проще и быстрее.

Что касается рабочего процесса, я по-прежнему являюсь поклонником SpriteMe, который представляет собой букмарклет, который находит изображения, используемые на вашей странице, предлагает или создает для вас спрайт и даже помогает вам с CSS. Однако SpriteMe работает только на одной странице за раз, что может быть недостаточно для сложных приложений. Я также большой поклонник SpriteCow, в котором вы вручную создаете свой собственный спрайт (в Photoshop или какой-либо другой программе редактирования изображений), а затем он помогает вам идентифицировать части с действительно отличным пользовательским интерфейсом и дает вам CSS, необходимый для использования. конкретное изображение внутри спрайта. Я думаю, что рабочий процесс SpriteCow немного лучше, потому что вы работаете со спрайтом, который вы создали сами, просматривая каталог изображений, поэтому он более всеобъемлющий и соответствует вашему собственному стилю.

Чтобы выйти на новый уровень с рабочим процессом спрайтов CSS, вам действительно нужно проверить, как Compass справляется с этим. У RailsCasts есть скринкаст, который научит вас этому. Это довольно круто. Вы просто используете отдельные изображения как обычно (помните, без предварительной оптимизации) и помещаете их в каталог изображений. Компас увидит новое изображение и автоматически добавит его к основному изображению спрайта. Он создает имя класса для нового изображения со всеми правильными размерами и положением. Затем в любом месте, где вы хотите использовать это новое изображение в качестве спрайта, либо используйте этот класс в своем HTML, либо @extend этот класс в вашем CSS. Эффективно, легко и супер-причудливо.

Треугольники

Вопрос от Якоба Косороаба:

Все поля прямоугольны для браузера. Как лучше всего подделать треугольную коробку?

Чтобы подготовить сцену, вы можете «подделать» треугольник несколькими способами. Наиболее распространенным является использование того факта, что границы заканчиваются под углом, когда они касаются друг друга в углах. Таким образом, если свернуть коробку до ширины и высоты 0 и установив цвет только для одной границы, мы можем сделать треугольник. Множество примеров этого можно найти в Shapes of CSS. Мы могли бы нарисовать треугольник с помощью SVG или холста. Мы могли бы даже сделать треугольник, с linear-gradient в качестве фона элемента, так просто: background: linear-gradient(45deg, white 90%, blue 90%); (со всеми префиксами производителя, конечно).

Но ни одна из этих методик здесь нам не поможет. В своем первоначальном вопросе Якоб Косороаба перечисляет две техники, которые он пробовал. Один включает rotate преобразования и clip имущество; проблема в том, что IE 9 имеет слишком большую область ролловера (т.е. он не ограничен треугольником). Второй метод использует немного меньше разметки, используя только rotate преобразования; проблема здесь в том, что вы не можете добавлять контент внутрь. Стало ясно, что ему нужно:

  1. Возможность размещать контент внутри;
  2. Возможность сделать треугольник (и только треугольник) звеном.

Джейкоб, ты должен был продвинуть свою и без того умную работу еще на шаг вперед! Объединив два ваших метода, вы можете сделать ссылку нужного размера (даже в IE) и поместить контент внутрь. Просто сделайте ссылку сверху с помощью z-index.

Вот демонстрация комбинированных методов.

Да, делать это с помощью разметки кажется немного хакерским. Это лишь одна из тех вещей, в которых CSS пока не силен.

Оптимизация на стороне сервера

Вопрос от Патрика Шрайнера:

Мне интересно, не могли бы вы дать некоторое представление о том, что следует иметь в виду для оптимизации и производительности на стороне сервера, когда дело доходит до CSS? Есть ли какие-то красные флажки, на которые стоит обратить внимание? Каков ваш подход к тому, чтобы убедиться, что код работает хорошо и оптимизирован для серьезной оптимизации на стороне сервера?

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

  • Просто подавайте CSS напрямую.

    … Не PHP, который нужно запускать и который затем служит типом контента CSS, и не LESS, который нужно интерпретировать на стороне клиента — просто старый добрый CSS.

  • Подавать в сжатом виде.

    Нет причин оптимизировать CSS для удобочитаемости. Удалите все нерелевантные пробелы и комментарии.

  • Сжать это.

    Если вы используете сервер Apache (весьма вероятно), вы можете поместить .htaccess файл в корне вашего веб-сайта, который указывает серверу обслуживать ваш CSS Gzip. Посмотрите код, начинающийся со строки 162 в HTML5 Boilerplate. .htaccess файл, как это сделать.

  • Кэшируйте это.

    Самый быстрый файл — это тот, который вам вообще не нужно обслуживать. Итак, когда вы обслуживаете файл CSS, скажите браузеру, чтобы он хранил его в течение длительного времени (год — хорошее эмпирическое правило). Затем, если вы измените CSS, вы можете сломать кеш, изменив имя файла (например, global.v23453.css). Посмотрите код, начинающийся со строки 267 в HTML5 Boilerplate. .htaccess файл, как это сделать.

  • Держите его маленьким.

    Если ваш файл CSS имеет размер 2 МБ, вы делаете это неправильно. Возможно, вам нужно немного больше OOCSS в вашем подходе, делая вещи более модульными с очень многоразовыми элементами стиля.

  • Один, два или три

    Именно столько файлов CSS должно быть загружено на любой данной странице. Один, если веб-сайт представляет собой одну страницу. Два для веб-сайтов средней сложности с использованием глобального файла CSS, необходимого для всех страниц, и второго файла для подразделов веб-сайта, которые достаточно отличаются друг от друга, чтобы гарантировать один. Три для довольно сложных веб-сайтов, которым нужны глобальные стили, стили для отдельных разделов и страниц.

Вперед!

Продолжайте в том же духе, ребята! Есть хороший? Присылайте, и мы выберем лучшее для следующего выпуска.

Сокрушительная редакция
(аль)



[ad_2]
Source: https://smashingmagazine.com

Заключение

Вы ознакомились с статьей — Вопросы и ответы по кодированию с Крисом Койером: размер коробки и CSS-спрайты

Пожалуйста оцените статью, и напишите комментарий.

Похожие статьи

Добавить комментарий

Ваш адрес email не будет опубликован.

Кнопка «Наверх»