Ответ 1
Я не уверен, могу ли я помочь вам в вашем проекте, но в последнее время я узнал, что мы можем аппаратно ускорить графические функции CSS, выгружая их на GPU для лучшей производительности рендеринга в браузере.
В настоящее время большинство современных браузеров поставляются с аппаратным ускорением. Они будут использовать его, когда видят, что DOM выиграет от этого. Сильным индикатором является 3D-преобразование.
Допустим, вы хотите разместить свою DOM с абсолютной позицией и поднять ее выше родительского контейнера. Вместо этого вы можете использовать -webkit-transform: translate3d(10px,10px,10px);
Это будет разрешено в 3D-рендеринг, даже если мы не анимируем элемент вообще. Даже если вы установите нулевые значения, оно все равно вызовет ускорение графики.
СОВЕТ Если вы видите мерцание, попробуйте добавить -webkit-backface-visibility: hidden;
и -webkit-perspective: 1000;
Теперь давайте поговорим об основах CSS
Вы должны знать, что самое главное, как браузеры ПРОЧИТАЛИ ваши селектор CSS, заключается в том, что они читают их справа налево. Это означает, что в селекторе ul > li img[alt="test.png"]
первое, что интерпретируется, - img[alt="test.png"]
. Первая часть также упоминается как "селектор ключей".
Итак, во-первых, идентификаторы наиболее эффективны, оставляя универсалии наименее. Таким образом, вы можете переписать код CSS, заменяющий глобальные (когда это не нужно) с идентификаторами.
Другим способом замедления работы браузера является добавление глобального выбора. (div # my-div) Что-то, что Chrome делает по умолчанию в режиме проверки. Это ПОЛНОСТЬЮ замедлит ваш браузер.
Безусловно, худший случай - селектор потомков. Даже селектор, который терпит неудачу (когда ваш селектор не соответствует чему-либо) лучше, чем html body div ul li a { }
Еще одна вещь, которая чрезвычайно полезна и чиста, - это селектор CSS3 (: последний-ребенок). Даже если эти селекторы помогают нам и облегчают нашу жизнь, они разорвут ваш браузер. Возможно, вы не заметите каких-либо различий в производительности на небольшом приложении, но когда вы представите их в Enterprise Applications, вы заметите, что они замедляют ваш рендеринг.
Итак, подведем итог. Я просто сказал вам, что замена всех ваших селекторов идентификаторами и применение стиля на каждом отдельном элементе по ID сделает ваше приложение супер быстрым, но, с другой стороны, это будет немного глупо. Было бы очень сложно поддерживать, а также не смысловую. Таким образом, вы должны рассмотреть возможность замены большинства селекторов идентификаторами, но не жертвуйте семантикой/ремонтопригодностью для эффективного CSS
Также вы можете проверить интересный тест здесь.
Теперь, когда я думаю об этом, я должен начать с основ CSS. Ну, надеюсь, я немного помог вам с вашим Проектом. ура