Nous avons répertorié plus d'une douzaine de points de connaissances et d'attention connexes. Vous pouvez en discuter systématiquement pour faciliter l'ouverture des pages Web que nous écrivons.
E-text를 읽을 수 없다고 말하지 마세요. 단지 읽고 싶지 않다는 뜻일 뿐입니다! ! !
1、스타일 시스템이 규칙을 분할하는 방법
스타일 시스템은 규칙을 네 가지 주요 범주로 나눕니다. 이러한 범주는 규칙 일치와 관련된 첫 번째 방어선이므로 이해하는 것이 중요합니다. 다음 단락에서는 키 선택기라는 용어를 사용합니다. 키 선택기는 ID 선택기, 클래스 선택기 또는 태그 선택기 중 가장 오른쪽에 나타나는 것으로 정의됩니다.
1.1、ID 규칙
첫 번째 카테고리는 ID 선택기를 키 선택기로 갖는 규칙으로 구성됩니다.
button#backButton { } /* 이것은 ID로 분류된 규칙입니다.*/
#urlBar[type="autocomplete"] { } /* 이것은 ID로 분류된 규칙입니다 */
트리항목 > 트리로우 > treecell#myCell :active { } /* 이것은 ID로 분류된 규칙입니다 */
1.2、클래스 규칙
규칙에 키 선택기로 지정된 클래스가 있는 경우 이 카테고리에 속합니다.
button.toolbarButton { } /* 클래스 기반 규칙 */
.fancyText { } /* 클래스 기반 규칙 */
menuitem > .menu-left[checked="true"] { } /* 클래스 기반 규칙 */
1.3、태그 규칙
클래스 또는 ID가 키 선택기로 지정되지 않은 경우 다음 잠재적 카테고리는 규칙은 태그 카테고리입니다. 규칙에 키 선택기로 지정된 태그가 있는 경우 해당 규칙은 이 카테고리에 속합니다.
td { } /* 태그 기반 규칙 */
treeitem > treerow { } /* 태그 기반 규칙 */
input[type="checkbox"] { } /* 태그 기반 규칙 */
1.4、범용 규칙
다른 모든 규칙은 여기에 속합니다. 범주.
:table { } /* 범용 규칙 */
[hidden="true"] { } /* 범용 규칙 */
* { } /* 범용 규칙 */
나무 > [collapsed="true"] { } /* 범용 규칙*/
2, 스타일 시스템이 규칙과 일치하는 방법
스타일 시스템은 가장 오른쪽 선택기부터 시작하여 규칙 선택기를 통해 왼쪽으로 이동하여 규칙과 일치합니다. 작은 하위 트리가 계속 체크아웃하는 한, 스타일 시스템은 규칙과 일치하거나 불일치로 인해 구제될 때까지 계속 왼쪽으로 이동합니다.
첫 번째 방어선은 키 선택기의 유형에 따라 발생하는 규칙 필터링입니다. 이 분류의 목적은 규칙을 필터링하여 일치시키려고 시간을 낭비하지 않도록 하는 것입니다. 이것이 성과를 획기적으로 향상시키는 열쇠입니다. 특정 요소를 확인해야 하는 규칙이 적을수록 스타일 해결이 더 빨라집니다. 예를 들어 요소에 ID가 있는 경우 요소의 ID와 일치하는 ID 규칙만 확인됩니다. 요소에 있는 클래스에 대한 클래스 규칙만 확인됩니다. 태그와 일치하는 태그 규칙만 확인됩니다. 범용 규칙은 항상 확인됩니다.
3、효율적인 CSS를 위한 지침
3.1、보편적인 규칙을 피하세요!
규칙이 범용 카테고리에 포함되지 않는지 확인하세요!
3.2、태그 이름이나 클래스로 ID 분류 규칙을 한정하지 마세요.
ID 선택기가 키 선택기로 있는 스타일 규칙이 있는 경우 태그 이름도 추가하지 마세요. 규칙. ID는 고유하므로 실제 이유 없이 일치 속도가 느려집니다.
BAD - 버튼#backButton { }
나쁨 - .menu-left#newMenuIcon { }
좋음 - #backButton { }
좋음 - #newMenuIcon { }
3.3、클래스 분류에 적합하지 않음 태그 이름이 있는 규칙
위의 규칙과 유사하게 모든 클래스는 고유합니다. 사용해야 하는 규칙은 수업 이름에 태그 이름을 포함하는 것입니다.
BAD - treecell.indented { }
좋음 - .treecell-indented { }
3.4、가능한 가장 구체적인 카테고리에 규칙을 넣어보세요!
시스템 속도 저하의 가장 큰 원인은 태그 카테고리에 규칙이 너무 많기 때문입니다. 요소에 클래스를 추가하면 이러한 규칙을 클래스 카테고리로 더 세분화할 수 있으며, 그러면 지정된 태그에 대해 많은 규칙을 일치시키느라 더 이상 시간을 낭비하지 않습니다.
나쁨 - treeitem[mailfolder="true"] > 트리로우 > treecell { }
좋음 - .treecell-mailfolder { }
3.5、하위 선택기를 피하세요!
하위 선택기는 CSS에서 가장 비싼 선택기입니다. 특히 선택기를 사용하는 규칙이 태그 또는 범용 카테고리에 있는 경우 비용이 매우 많이 듭니다. 실제로 원하는 것은 하위 선택기인 경우가 많습니다. 스킨 모듈 소유자의 명시적인 승인 없이는 UI CSS에서 하위 선택기의 사용이 금지됩니다.
나쁨 - treehead treerow treecell { }
더 좋지만 여전히 나쁨 (다음 지침 참조) - treehead > 트리로우 > treecell { }
3.6、태그 분류 규칙에는 하위 선택기가 포함되어서는 안 됩니다!
태그 분류 규칙과 함께 하위 선택기를 사용하지 마세요. 해당 요소의 모든 발생에 대해 일치 시간을 극적으로 늘립니다(특히 규칙이 더 자주 일치할 가능성이 있는 경우).
나쁨 - 나무머리 > 트리로우 > treecell { }
BEST - .treecell-header { }
3.7、하위 선택기의 모든 사용법에 대해 질문하세요!
하위 선택기를 사용할 때는 주의하세요. 그것을 사용하지 않아도 되는 방법이 있다면 그렇게 하세요. 특히 하위 선택기는 RDF 트리 및 이와 같은 메뉴와 함께 자주 사용됩니다.
나쁨 - treeitem[IsImapServer="true"] > 트리로우 > .tree-folderpane-icon { }
RDF의 속성이 템플릿에서 복제될 수 있다는 점을 기억하세요! 이 사실을 활용하여 해당 속성에 따라 변경하려는 하위 XUL 요소에 RDF 속성을 복제하세요.
좋음 - .tree-folderpane-icon[IsImapServer="true"] { }
3.8、상속에 의존하세요!
어떤 속성이 상속되는지 알아보고 상속하도록 허용하세요! 우리는 XUL 위젯을 명시적으로 설정하여 상위 태그에 목록 스타일 이미지(단지 하나의 예) 또는 글꼴 규칙을 넣을 수 있으며 익명의 콘텐츠를 필터링합니다. 익명의 콘텐츠와 직접 대화하는 규칙을 작성하는 데 시간을 낭비할 필요가 없습니다.
나쁨 - #bookmarkMenuItem > .menu-left { list-style-image: url(blah); }
좋음 - #bookmarkMenuItem { list-style-image: url(blah); }
Dans l'exemple ci-dessus, le désir de styliser le contenu anonyme (sans comprendre que l'image-de-style-liste hérite) a abouti à une règle qui était dans la catégorie de classe, alors que cette règle aurait vraiment de fini par être dans la plus spécifique catégorie de toutes, la catégorie ID .
N'oubliez pas, surtout avec le contenu anonyme, qu ils ont tous les mêmes cours ! La mauvaise règle ci-dessus entraîne la vérification de l'icône de chaque menu pour voir si elle est contenue dans l'élément de menu des favoris. C'est horriblement cher (car il existe de nombreux menus) ; cette règle n'aurait jamais dû être vérifiée par un menu autre que le menu de signets .
3.9、Utilisez -moz-image-region !
Placer un groupe d'images dans un unique fichier image et les sélectionner avec -moz-image-region est beaucoup meilleur que mettre chaque image dans son propre fichier.
Informations sur le document original - Auteur : David Hyatt