Сейчас слишком много CSS? PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Не слишком ли много CSS сейчас?

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

И теперь, когда мы получили все, чего хотели, и даже больше, некоторые из нас задаются вопросом: есть ли у нас теперь слишком много CSS?

Темные времена

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

Раньше практически вся работа фронтенд-разработчика заключалась в преодолении ограничений CSS. ClearFix взломать чтобы очистить поплавки, 100% обходной путь создавать квадратные элементы управления, не говоря уже о полуслучайном применении несвязанных свойств, чтобы обманом заставить Internet Explorer выполнять ваши действия.

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

Новая эра CSS

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

Помимо этого, Google также помог финансировать мою работу над опросом и даже нанял Леа Веру возглавить отбор вопросов для опроса в этом году.

Это не только Google. Стало модно ругать Safari и Apple в целом (иногда вполне заслуженно), но нельзя отрицать, насколько страстны такие люди, как Джен Симмонс речь идет о том, чтобы прислушиваться к разработчикам и улучшать Интернет.

И не только производители браузеров самостоятельно совершенствуют CSS; они даже сотрудничают между собой в рамках таких инициатив, как Интероп 2023 чтобы помочь уменьшить несогласованность и несовместимость между браузерами.

Слишком много хорошего?

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

В процессе выбора какие функции CSS включать или не включать в State of CSSМы с Леа рассмотрели множество функций, но немалое количество отвергли. Некоторые примеры функций, которые мы не включают:

  • Ассоциация linear() функция смягчения, что позволяет вам определять кривые замедления с большей степенью детализации. 
  • Ассоциация env() функция, что позволяет использовать переменные, определенные браузером или устройством. 
  • Ассоциация scrollbar-width свойство, которое помогает управлять внешним видом полосы прокрутки. 
  • Ассоциация margin-trim свойство, которое позволяет вам контролировать поведение дочерних полей контейнера. 

Все они потенциально очень полезны и могли бы стать большой новостью во время засухи CSS в прошлые годы. Но в сегодняшнем контексте им приходится бороться за внимание с помощью гораздо более крупных объявлений, таких как селектор has() или вложение CSS!

Не взволнован

В роли Сильвестра Бистровича пишет, он «не в восторге от всех этих новых возможностей CSS». Это нашло отклик в Твиттере, где Сара Суидан заявив, что ее волнует «практичность, а не то, насколько блестяще выглядит функция в данный момент».

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

Еще одним непреднамеренным (или, может быть, намеренным?) последствием является то, что чем сложнее становится CSS, тем больше он поднимает планку для любой новой компании, желающей разработать движок браузера — не говоря уже о дополнительной рабочей нагрузке, когда дело доходит до поддержки и документирования всех эти новые возможности. 

CSS-перебор

Существует также вполне обоснованное опасение, что CSS может разветвляться на области, с которыми он не совсем подходит. Это еще одна вещь, на которую указала Сара Суэйдан, реагируя на новую экспериментальную реализацию CSS Toggles (вот билет, где это обсуждается):

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

Когда CSS берет на себя что-то, что раньше обрабатывалось с помощью JavaScript, это обычно рассматривается как положительный момент, поскольку часто сокращается объем кода, который приходится загружать браузеру. Итак, я с осторожным оптимизмом смотрю на CSS Toggles и верю, что рабочая группа CSS должным образом рассмотрит проблемы сообщества. Но, возможно, еще наступит день, когда мы начнем беспокоиться о том, что CSS может выйти за пределы своих границ и посягнуть на обязанности HTML и JavaScript.

Новые ожидания

И, возможно, именно это необходимо изменить: возможно, нам следует отказаться от ожиданий, что разработчики CSS должны знать Найти CSS? 

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

As Мишель Баркер пишет:

И вот где я сам в конце концов приземляюсь. Я смирился с тем фактом, что, вероятно, никогда не буду использовать (или даже не узнаю) все возможные функции CSS. И это исходит от человека, который проводит опрос о CSS!

Но эти новые функции наверняка будут полезны кто-то. Кто-то напишет о них посты в блогах, создаст с их помощью классные CodePens, расскажет о них. Этот человек будет крутым, молодым, энергичным разработчиком, у которого все еще есть волосы. Другими словами, это буду не я — и это нормально. 

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

Но подумайте об этом: за последние пару лет мы не только стали свидетелями огромного увеличения количества устройств, которые нам нужно обслуживать, мы также начали осознавать, что все мы потребляем Интернет несколько по-разному, то ли из-за инвалидности, текущего контекста или просто личных предпочтений. Разве CSS не должен адаптироваться к этой новой реальности?

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


Как я уже говорил, ежегодно Исследование состояния CSS теперь открыт. Считаете ли вы, что CSS слишком много или нет, опрос — отличный способ сообщить разработчикам браузеров, что вы чувствуете, поэтому иди, заполни это если у тебя есть 10 минут. 

Отметка времени:

Больше от CSS хитрости