Czy jest teraz za dużo CSS? Inteligencja danych PlatoBlockchain. Wyszukiwanie pionowe. AI.

Czy jest teraz za dużo CSS?

Jako programiści front-end, przez lata życzyliśmy sobie wielu rzeczy — sposobów wyśrodkowania elementów w CSS, enkapsulacji stylów, ustawienia proporcji elementu, uzyskania dokładniejszej kontroli nad naszymi kolorami, wybrania elementu na podstawie jego właściwości dzieci, zarządzaj warstwami specyfiki, pozwalają elementom odpowiadać szerokości ich rodziców… lista jest długa.

A teraz, gdy dostaliśmy wszystko, czego sobie życzyliśmy, a nawet więcej, niektórzy z nas pytają – czy teraz mamy? zbyt wiele CSS?

Mroczne czasy

Jeśli, tak jak ja, pojawiłeś się w tworzeniu stron internetowych w początkach CSS, pomysł, aby mieć go za dużo, wydaje się absurdalny.

W tamtych czasach praktycznie cały opis stanowiska programisty front-end polegał na radzeniu sobie z ograniczeniami CSS. The Clearfix hack aby wyczyścić pływaki, 100% wyściółka hack do tworzenia kwadratowych elementów div, nie wspominając o półlosowym stosowaniu niepowiązanych właściwości, aby nakłonić Internet Explorera do wykonywania licytacji.

W tamtym czasie przeglądarka była przebiegłym wrogiem, którego trzeba było pokonać dzięki czystej przebiegłości i tajemnych zaklęć. Dziś idealna nieruchomość czeka i wystarczy skopiować i wkleić na MDN.

Nowa era CSS

Ale dzisiaj sprawy mają się zupełnie inaczej: nie tylko rzeczy poruszają się znacznie szybciej, ale także dostawcy przeglądarek naprawdę obchodzi o uszczęśliwianiu programistów! Wiem, ja też nie mogłem w to uwierzyć. Ale prowadzę roczną Stan CSS ankieta dla deweloperów (która jest otwórz przy okazji — idź weź to!) i wiem na pewno, że zespoły programistów przeglądarek wykorzystują wyniki ankiety (wśród wielu innych punktów danych) do tworzenia planu działania.

Poza tym Google pomogło mi również sfinansować moją pracę nad ankietą, a nawet zatrudniło Lea Verou przewodzić w wyborze tegorocznych pytań ankietowych.

To nie tylko Google. Modne stało się walenie z Safari i Apple w ogóle (czasami zasłużenie), ale nie można zaprzeczyć, jak bardzo ktoś taki namiętny Jen Simmons polega na słuchaniu programistów i ulepszaniu sieci.

Dostawcy przeglądarek nie tylko samodzielnie ulepszają CSS; współpracują nawet ponad liniami bojowymi, podejmując takie inicjatywy, jak: Współpraca 2023 aby pomóc zmniejszyć niespójności i niezgodności między przeglądarkami.

Za dużo tego dobrego?

Efektem tego wszystkiego jest to, że mamy teraz do czynienia z zawstydzeniem bogactw CSS i może być trudno nadrobić zaległości. Siatka CSS zaczął być obsługiwany w głównych przeglądarkach prawie pięć lat temu, ale wciąż sprawdzam odniesienie za każdym razem, gdy go używam. I tak fajnie jak podsiatka wydaje się, że jeszcze tego nie wypróbowałem.

Podczas procesu selekcji które funkcje CSS należy uwzględnić, a które nie w stanie CSS, Lea i ja rozważaliśmy wiele funkcji, ale kilka odrzuciliśmy. Kilka przykładów funkcji, którą Czy nie to są:

  • Połączenia linear() funkcja luzowania, który umożliwia definiowanie krzywych wygładzania z większą szczegółowością. 
  • Połączenia env() funkcjonować, który umożliwia korzystanie ze zmiennych zdefiniowanych przez przeglądarkę lub urządzenie. 
  • Połączenia scrollbar-width właściwość, która pomaga kontrolować wygląd paska przewijania. 
  • Połączenia margin-trim właściwość, która pozwala kontrolować zachowanie marginesów podrzędnych kontenera. 

To wszystko jest potencjalnie bardzo przydatne i wszystkie byłyby wielką wiadomością podczas suszy CSS w ostatnich latach. Ale w dzisiejszym kontekście muszą walczyć o uwagę znacznie większymi ogłoszeniami, takimi jak selektor has() lub zagnieżdżanie CSS!

Nie podekscytowani

Jako Silvestar Bistrović pisze,, „nie jest podekscytowany wszystkimi nowymi funkcjami CSS”. To znalazło echo na Twitterze, z Sara Sueidan stwierdzając, że zależy jej na „praktyczności, a nie o tym, jak błyszcząca jest obecnie funkcja”.

To może wydawać się negatywną postawą, ale myślę, że to zrozumiałe. Nikt nie może oczekiwać, że będzie na bieżąco z tak wieloma nowymi funkcjami!

Inną niezamierzoną (a może zamierzoną?) konsekwencją jest to, że im bardziej złożony staje się CSS, tym bardziej podnosi poprzeczkę każdej nowej firmie, która chce opracować silnik przeglądarki — nie mówiąc już o dodatkowym obciążeniu pracą, jeśli chodzi o utrzymanie i dokumentowanie wszystkich te nowe funkcje. 

Zasięg CSS

Istnieje również bardzo ważna obawa, że ​​CSS może rozgałęziać się na obszary, z którymi nie jest odpowiednia obsługa. To kolejna rzecz, na którą zwróciła uwagę Sara Soueidan, reagując na nową eksperymentalną implementację CSS Toggles (oto bilet omawiający to):

Wiele osób uznało, że tego rodzaju zachowanie najlepiej poradzi sobie z nowym elementem HTML, zamiast zarządzać stanem przełączania wyłącznie za pośrednictwem CSS, i że CSS może nie być najlepszym środkiem zapewniającym prawidłowe rozwiązywanie problemów z dostępnością. 

Kiedy CSS przejmuje coś, co było wcześniej obsługiwane przez JavaScript, jest to ogólnie postrzegane jako dobra rzecz, ponieważ często zmniejsza ilość kodu, który musi załadować przeglądarka. Dlatego jestem ostrożnym optymistą co do CSS Toggles i ufam, że CSS Working Group właściwie zajmie się obawami społeczności. Ale może nadejść dzień, w którym zaczniemy się martwić, że CSS może wykroczyć poza swoje granice i wkroczyć w obowiązki HTML i JavaScript.

Nowe oczekiwania

I może to musi się zmienić: może powinniśmy porzucić oczekiwanie, że programiści CSS muszą wiedzieć cała kolekcja CSS? 

To oczekiwanie wywodzi się z czasów, gdy CSS był refleksją, tą małą irytującą składnią, której trzeba było się nauczyć, aby przycisk był niebieski i pogrubiony, tak jak prosił klient. Ale myślę, że musimy zaakceptować fakt, że dzisiejszy CSS może być zbyt obszerny dla jednej osoby do opanowania, szczególnie w połączeniu z innymi obowiązkami front-endowymi.

As Michelle Barker mówi:

I właśnie tam w końcu ląduję. Pogodziłem się z faktem, że prawdopodobnie nigdy nie użyję — ani nawet nie będę wiedział o — wszystkich możliwych funkcji CSS. A to pochodzi od kogoś, kto… prowadzi ankietę na temat CSS!

Ale te nowe funkcje z pewnością przydadzą się ktoś. Ktoś napisze o nich posty na blogu, stworzy z nimi fajne CodePen'y, wygłosi na ich temat pogadanki. Ta osoba będzie fajnym, młodym, energicznym deweloperem, który wciąż ma wszystkie włosy. Innymi słowy, to nie będę ja – i to w porządku. 

A może obawiasz się, że ten nowy programista będzie przytłoczony wszystkimi rzeczami, których będzie musiał się nauczyć od razu. Ale pamiętaj o wszystkich rzeczach, które nie będzie trzeba się o tym dowiedzieć, właśnie dlatego, że został zastąpiony przez te nowsze alternatywy. Wiem, że w każdej chwili zawarłbym tę umowę.

Ale pomyśl o tym: w ciągu ostatnich kilku lat nie tylko zaobserwowaliśmy ogromny wzrost liczby urządzeń, które musimy obsługiwać, ale także zaczęliśmy zdawać sobie sprawę, że wszyscy korzystamy z sieci w nieco inny sposób, czy to z powodu do niepełnosprawności, aktualnego kontekstu lub po prostu osobistych preferencji. Czy CSS nie powinien dostosować się do tej nowej rzeczywistości?

Teraz muszę przyznać, że to wszystko sprawiło, że poczułem się trochę nostalgiczny… więc przepraszam, kiedy wychodzę kilka pływaków, tylko ze względu na stare czasy.


Jak wspomniałem, roczna Badanie stanu CSS jest teraz otwarty. Niezależnie od tego, czy uważasz, że CSS jest za dużo, czy nie, ankieta jest świetnym sposobem na poinformowanie programistów przeglądarek, jak się czujesz, więc idź wypełnij to jeśli masz 10 minut. 

Znak czasu:

Więcej z Sztuczki CSS