Как веб-разработчик, вы можете только предпринять определенные усилия для оптимизации кода CSS. Однако компьютеры могут принимать во внимание гораздо больше времени и, следовательно, лучше оптимизируются. Вопрос: Какой CSS-код гипотетически наиболее оптимизирован? (для современных браузеров)
Учитывая следующее изображение:
A, B, C и D - DOM-объекты (скажем, DIV-элементы) и числа 1-17 представляют атрибуты (например, цвет, фон, ширина, высота и т.д.)
В то время как все числа представляют собой уникальные атрибуты. например:
4 = background-color: #FF0;
5 = width: 50px;
10 = background-color: #F00;
Существует несколько способов генерации кода css для этого веб-сайта:
Все собственные идентификаторы
#A { 1 2 5 8 9 10 12 }
#B { 1 4 5 11 12 13 14 15 }
#C { 1 2 3 5 7 }
#D { 3 4 5 6 16 17 }
Тем не менее, файл будет очень большим, атрибуты не будут использоваться совместно и простые тестовые доказательства, которые это довольно медленно сделать. (image1.html, см. создание файла script ниже)
Поделиться некоторыми общими атрибутами
#A { 2 8 9 10 12 }
#B { 4 11 12 13 14 15 }
#C { 2 3 7 }
#D { 3 4 6 16 17 }
.1 { 1 }
.5 { 5 }
Файл будет меньше, и рендеринг кажется более быстрым. (см. image2.html)
Поделиться всеми общими атрибутами
#A { 8 9 10 }
#B { 11 13 14 15 }
#C { 7 }
#D { 6 16 17 }
.1 { 1 }
.3 { 3 }
.2 { 2 }
.4 { 4 }
.5 { 5 }
.12 { 12 }
Файл будет еще меньше (большую часть времени), и, как оказалось, рендеринг идет быстрее. Но обратите внимание, что A, B и C заканчивается одним ID и 4 классами, которые содержат только один атрибут! (см. image3.html)
Теперь это три простых примера кода CSS. Но, как вы можете себе представить, когда существует больше объектов DOM и существует больше совпадений атрибутов, теоретически вы можете получить один объект DOM с 1 идентификатором и 10'-ыми классами!
Какой CSS-код гипотетически наиболее оптимизирован? (для современных браузеров) Должны ли вы ограничивать количество классов на объект DOM? если вы предпочитаете "отдельный атрибут, содержащий класс", добавляя его в ID?
p.s. В качестве теста я загрузил изображение с помощью PHP. Затем прочитайте значение пикселя этого PNG и создайте ту же картинку, используя CSS и DIV-элементы. Код для генерации image1.html, image2.html и image3.html можно найти здесь Вы можете использовать ЛЮБЫЕ изображения PNG... Я использовал это изображение