Outils Balises
Convention générale
Conventions générales
Organisation du code
- Organiser les segments de code en unités de composants ;
- Développer des spécifications de commentaires cohérentes
Blocs de composants et blocs de sous-composantsetBlocs de déclaration< ; /code> Code> est séparé par une ligne vide et lesblocs de sous-composantssont séparés par trois lignes vides组件块和子组件块以及声明块之间使用一空行分隔,子组件块之间三空行分隔;- 如果使用了多个 CSS 文件,将其按照组件而非页面的形式分拆,因为页面会被重组,而组件只会被移动;
良好的注释是非常重要的。请留出时间来描述组件(component)的工作方式、局限性和构建它们的方法。不要让你的团队其它成员 来猜测一段不通用或不明显的代码的目的。
提示:通过配置编辑器,可以提供快捷键来输出一致认可的注释模式。
/* ==========================================================================
组件块
============================================================================ */
/* 子组件块
============================================================================ */
.selector {
padding: 15px;
margin-bottom: 15px;
}
/* 子组件块
============================================================================ */
.selector-secondary {
display: block; /* 注释*/
}
.selector-three {
display: span;
}Class 和 ID
- 使用语义化、通用的命名方式;
- 使用连字符 - 作为 ID、Class 名称界定符,不要驼峰命名法和下划线;
- 避免选择器嵌套层级过多,尽量少于 3 级;
- 避免选择器和 Class、ID 叠加使用;
出于性能考量,在没有必要的情况下避免元素选择器叠加 Class、ID 使用。
元素选择器和 ID、Class 混合使用也违反关注分离原则。如果HTML标签修改了,就要再去修改 CSS 代码,不利于后期维护。
/* Not recommended */
.red {}
.box_green {}
.page .header .login #username input {}
ul#example {}
/* Recommended */
#nav {}
.box-video {}
#username input {}
#example {}声明块格式
- 选择器分组时,保持独立的选择器占用一行;
- 声明块的左括号
{前添加一个空格; - 声明块的右括号
}应单独成行; - 声明语句中的
:后应添加一个空格; - 声明语句应以分号
;结尾; - 一般以逗号分隔的属性值,每个逗号后应添加一个空格;
rgb()、rgba()、hsl()、hsla()或rect()括号内的值,逗号分隔,但逗号后不添加一个空格;- 对于属性值或颜色参数,省略小于 1 的小数前面的 0 (例如,
.5代替0.5;-.5px代替-0.5px); - 十六进制值应该全部小写和尽量简写,例如,
#fff代替#ffffff; - 避免为 0 值指定单位,例如,用
margin: 0;代替margin: 0px;Si plusieurs fichiers CSS sont présents ; utilisé, divisez-le en composants plutôt qu'en pages, car les pages seront réorganisées et les composants seront uniquement déplacés
/* Not recommended */
.selector, .selector-secondary, .selector[type=text] {
padding:15px;
margin:0px 0px 15px;
background-color:rgba(0, 0, 0, 0.5);
box-shadow:0px 1px 2px #CCC,inset 0 1px 0 #FFFFFF
}
/* Recommended */
.selector,
.selector-secondary,
.selector[type="text"] {
padding: 15px;
margin-bottom: 15px;
background-color: rgba(0,0,0,.5);
box-shadow: 0 1px 2px #ccc, inset 0 1px 0 #fff;
}Classe et IDUtilisez une dénomination sémantique et universelle ;
Utilisez des traits d'union - comme délimiteurs d'ID et de nom de classe, n'utilisez pas de dénomination en casse chameau et de traits de soulignement ;
🎜Évitez trop de niveaux imbriqués de sélecteurs. plus de 3 niveaux ; 🎜🎜Évitez l'utilisation de sélecteurs avec classe et identifiant 🎜🎜🎜Pour Considérations sur les performances, évitez d'utiliser des sélecteurs d'éléments superposés à la classe et à l'ID lorsque cela n'est pas nécessaire. 🎜🎜L'utilisation mixte de sélecteurs d'éléments, d'identifiants et de classes viole également le principe de séparation des préoccupations. Si la balise HTML est modifiée, le code CSS doit être à nouveau modifié, ce qui n'est pas propice à une maintenance ultérieure. 🎜.declaration-order {
/* Positioning */
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 100;
/* Box model */
display: block;
box-sizing: border-box;
width: 100px;
height: 100px;
padding: 10px;
border: 1px solid #e5e5e5;
border-radius: 3px;
margin: 10px;
float: right;
overflow: hidden;
/* Typographic */
font: normal 13px "Helvetica Neue", sans-serif;
line-height: 1.5;
text-align: center;
/* Visual */
background-color: #f5f5f5;
color: #fff;
opacity: .8;
/* Other */
cursor: pointer;
}🎜Format du bloc de déclaration🎜🎜🎜Lors du regroupement des sélecteurs, gardez les sélecteurs indépendants occupant une ligne ; 🎜🎜Ajoutez un espace avant le crochet gauche du bloc de déclaration { ; le bloc } doit être sur une ligne séparée ; 🎜🎜Un espace doit être ajouté après : dans l'instruction de déclaration 🎜🎜L'instruction de déclaration doit se terminer par un point-virgule ; ;; 🎜 🎜Généralement, pour les valeurs d'attribut séparées par des virgules, un espace doit être ajouté après chaque virgule 🎜🎜rgb(), rgba(), hsl() code>, hsla() ou rect() Valeurs entre parenthèses, séparées par des virgules, mais sans ajouter d'espace après la virgule ; 🎜🎜Pour les valeurs d'attribut ou les paramètres de couleur, omettez 0 devant les décimales inférieures à 1 (par exemple, .5 au lieu de 0.5 ; -.5px au lieu de -0.5px ); 🎜🎜Les valeurs hexadécimales doivent être toutes en minuscules et abrégées autant que possible, par exemple #fff > au lieu de #ffffff ; 🎜🎜Évitez de spécifier des unités pour les valeurs 0, par exemple, avec margin : 0 ; au lieu de margin : 0px ; 🎜🎜/* Not recommended */
@import url(//www.google.com/css/maia.css);
html {
font-family: 'open sans', arial, sans-serif;
}
/* Recommended */
@import url("//www.google.com/css/maia.css");
html {
font-family: "open sans", arial, sans-serif;
}
.selector[type="text"] {
}🎜Ordre de déclaration🎜🎜Les attributs associés doivent être un groupe, ordre d'écriture de style recommandé🎜🎜1.Positionnement🎜 🎜2.Modèle de boîte🎜🎜3.Typographique🎜🎜4.Visuel🎜Ceci est classé en premier car le positionnement peut supprimer des éléments du flux normal de documents et peut également remplacer les styles liés au modèle de boîte. Le modèle de boîte détermine la taille et l’emplacement des composants et vient donc en deuxième position.
Les autres propriétés n'affectent que l'intérieur du composant ou n'affectent pas les deux premiers groupes de propriétés, elles sont donc classées derrière.
.element { ... }
.element-avatar { ... }
.element-selected { ... }
@media (max-width: 768px) {
.element { ...}
.element-avatar { ... }
.element-selected { ... }
}Utilisez
url() pour les guillemets, les sélecteurs d'attributs et les valeurs d'attribut utilisant des guillemets doubles. Référence Citer la valeur de url() est-il vraiment nécessaire ?url() 、属性选择符、属性值使用双引号。 参考 Is quoting the value of url() really necessary?
rrreee媒体查询(Media query)的位置
将媒体查询放在尽可能相关规则的附近。不要将他们打包放在一个单一样式文件中或者放在文档底部。如果你把他们分开了,将来只会被大家遗忘。
rrreee不要使用 @import
与 <link> 相比,@import 要慢很多,不光增加额外的请求数,还会导致不可预料的问题。
替代办法:
- 使用多个 元素;
- 通过 Sass 或 Less 类似的 CSS 预处理器将多个 CSS 文件编译为一个文件;
- 其他 CSS 文件合并工具;
参考 don’t use @import;
链接的样式顺序:
a:link -> a:visited -> a:hover -> a:active(LoVeHAte)
rrreeePosition de la requête média
Placez les requêtes média aussi près que possible des règles pertinentes. Ne les regroupez pas dans un seul fichier de style et ne les placez pas au bas du document. Si vous les séparez, ils ne seront oubliés de tous qu’à l’avenir. rrreeeN'utilisez pas @importAlternative : - Utilisez plusieurs éléments ;
- Compilez plusieurs fichiers CSS en un seul fichier via un préprocesseur CSS comme Sass ou Less
- Autres outils de fusion de fichiers CSS ; ;
Ordre de style des liens :
a:link -> a:visited a: hover -> actif (LoVeHAte)🎜🎜Pas besoin d'ajouter le préfixe du fournisseur du navigateur🎜🎜Utilisez 🎜Autoprefixer🎜 pour ajouter automatiquement le préfixe du fournisseur du navigateur lors de l'écriture du CSS, utilisez directement le CSS standard. 🎜🎜Autoprefixer ajoute le préfixe du fournisseur du navigateur au code CSS correspondant en fonction des exigences de compatibilité via 🎜Puis-je utiliser🎜. 🎜🎜🎜🎜🎜🎜
Outils d'IA chauds
Images de déshabillage gratuites
Outil d'IA en ligne pour supprimer les vêtements des photos.
Application basée sur l'IA pour créer des photos de nu réalistes
Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes
Article chaud
Sujets chauds
Outil populaire
Éditeur de code facile à utiliser et gratuit
Version chinoise, très simple à utiliser
Puissant environnement de développement intégré PHP
Outils de développement Web visuel
Logiciel d'édition de code au niveau de Dieu (SublimeText3)












![Premiers pas avec le développement pratique PHP : création rapide de PHP [Small Business Forum]](https://img.php.cn/upload/course/000/000/035/5d27fb58823dc974.jpg)
