Inhaltsverzeichnis
Kodierungseinstellungen " >Kodierungseinstellungen
Namespace-Spezifikation" >Namespace-Spezifikation
Namespace-Denken" >Namespace-Denken
Es wird nicht empfohlen, den Unterstrich_ zum Herstellen einer Verbindung zu verwenden" >Es wird nicht empfohlen, den Unterstrich_ zum Herstellen einer Verbindung zu verwenden
Selektoren" >Selektoren
规则声明块" >规则声明块
数值与单位" >数值与单位
样式属性顺序" >样式属性顺序
合理使用使用引号" >合理使用使用引号
font-family 内使用引号" >font-family 内使用引号
background-image 的 url 内使用引号" >background-image 的 url 内使用引号
避免使用 !important" >避免使用 !important
代码注释" >代码注释
单行注释" >单行注释
多行注释" >多行注释
规则声明块内注释" >规则声明块内注释
文件注释" >文件注释
SASS 使用建议" >SASS 使用建议
嵌套层级规定" >嵌套层级规定
组件/公用类的使用方法" >组件/公用类的使用方法
组件类的思考" >组件类的思考
尽量避免使用标签名" >尽量避免使用标签名
Heim Web-Frontend HTML-Tutorial Spezifikationen für das Schreiben von CSS-Verwendungen

Spezifikationen für das Schreiben von CSS-Verwendungen

Jul 20, 2017 pm 03:59 PM
css 规范

Vielleicht haben verschiedene Teams ihre eigenen Spezifikationen, oder viele Leute schreiben beim Schreiben von CSS immer noch, was ihnen einfällt, ohne allzu viele Einschränkungen.

Ich denke, dass CSS-Codestandards immer noch notwendig sind, insbesondere bei Teamarbeit und Zusammenarbeit mit mehreren Personen sind Standards besonders wichtig.

Was in diesem Artikel aufgeführt ist, ist ein relativ guter Satz von CSS-Schreibspezifikationen, die aus der Praxis abgeleitet wurden. Ich hoffe nicht, dass jeder sie vollständig übernimmt, aber Sie können eine auf der Grundlage Ihrer eigenen entwickeln Legen Sie die CSS-Codespezifikationen fest, die zu Ihnen passen.

Ich hoffe auch, dass es weitere Anregungen zur gemeinsamen Verbesserung geben kann. Diese Spezifikation ist auch auf meinem Github zu sehen. Sie können gerne eine Nachricht hinterlassen oder eine PR einreichen.

Kodierungseinstellungen

verwendet UTF-8 Kodierung und wird im CSS-Code verwendet Header:

@charset "utf-8";
Nach dem Login kopieren

Beachten Sie, dass er vor allen Zeichen in der CSS-Datei (einschließlich Codierungskommentaren) für @charset definiert werden muss wirksam werden.

Zum Beispiel machen die folgenden Beispiele @charset ungültig:

/* 字符编码 */
@charset "utf-8";
html,
body {
  height: 100%;
}

@charset "utf-8";
Nach dem Login kopieren

Namespace-Spezifikation

  • Layout: g ist der Namespace, zum Beispiel: .g- Wrap, .g-Header, .g-Inhalt.

  • Status: Mit s als Namespace stellt es einen dynamischen und interaktiven Status dar, wie zum Beispiel: .s-current, s-selected.

  • Tools: Mit u als Namespace stellt es wiederverwendbare Tools dar, die nicht mit der Geschäftslogik gekoppelt sind, wie zum Beispiel: u-clearfix, u-ellipsis.

  • Komponente: m ist der Namespace, der wiederverwendbare und tragbare Komponentenmodule darstellt, wie zum Beispiel: m-slider, m-dropMenu.

  • Hook: Mit j als Namespace stellt er den Klassennamen dar, der für JavaScript-Aufrufe spezifisch ist, wie zum Beispiel: j-request, j-open.

Namespace-Denken

Keine Wahl BEM Diese Art der Benennung ist zu streng und der Stilname auch Die hässlichen Regeln gehen eine Kompromisslösung ein.

Es wird nicht empfohlen, den Unterstrich_ zum Herstellen einer Verbindung zu verwenden

  • Sparen Sie Vorgänge und weniger Zeit Tippen Durch Drücken einer shift-Taste

  • kann die Benennung von JavaScript-Variablen gut unterschieden werden

Selektoren

Wenn eine Regel mehrere Selektoren enthält, belegt jeder Selektor eine eigene Zeile.

, +, ~, > Lassen Sie auf jeder Seite des Selektors ein Leerzeichen.

.g-header > .g-header-des,
.g-content ~ .g-footer {
    
}
Nach dem Login kopieren

规则声明块

  • 当规则声明块中有多个样式声明时,每条样式独占一行。

  • 在规则声明块的左大括号 { 前加一个空格。

  • 在样式属性的冒号 : 后面加上一个空格,前面不加空格。

  • 在每条样式后面都以分号 ; 结尾。

  • 规则声明块的右大括号 } 独占一行。

  • 每个规则声明间用空行分隔。

  • 所有最外层引号使用单引号 ' 。

  • 当一个属性有多个属性值时,以逗号 , 分隔属性值,每个逗号后添加一个空格,当单个属性值过长时,每个属性值独占一行。

完整示例如下:

.g-footer,
.g-header {
  position: relative;
}

.g-content {
  background:
    linear-gradient(135deg, deeppink 25%, transparent 25%) -50px 0,
    linear-gradient(225deg, deeppink 25%, transparent 25%) -50px 0,
    linear-gradient(315deg, deeppink 25%, transparent 25%),
    linear-gradient(45deg, deeppink 25%, transparent 25%);
  }

.g-content::before {
  content: '';
}
Nach dem Login kopieren

数值与单位

  • 当属性值或颜色参数为 0 - 1 之间的数时,省略小数点前的 0 。

    color: rgba(255, 255, 255, 0.5)

    color: rgba(255, 255, 255, .5);

  • 当长度值为 0 时省略单位。

    margin: 0px auto

    margin: 0 auto

  • 十六进制的颜色属性值使用小写和尽量简写。

    color: #ffcc00

    color: #fc0

样式属性顺序

单个样式规则下的属性在书写时,应按功能进行分组,并以 Positioning Model > Box Model > Typographic > Visual 的顺序书写,提高代码的可读性。

  • 如果包含 content 属性,应放在最前面;

  • Positioning Model 布局方式、位置,相关属性包括:position / top / right / bottom / left / z-index / display / float / ...

  • Box Model 盒模型,相关属性包括:width / height / padding / margin / border / overflow / ...

  • Typographic 文本排版,相关属性包括:font / line-height / text-align / word-wrap / ...

  • Visual 视觉外观,相关属性包括:color / background / list-style / transform / animation / transition / ...

Positioning 处在第一位,因为他可以使一个元素脱离正常文本流,并且覆盖盒模型相关的样式。盒模型紧跟其后,因为他决定了一个组件的大小和位置。其他属性只在组件内部起作用或者不会对前面两种情况的结果产生影响,所以他们排在后面。

合理使用使用引号

在某些样式中,会出现一些含有空格的关键字或者中文关键字。

font-family 内使用引号

当字体名字中间有空格,中文名字体及 Unicode 字符编码表示的中文字体,为了保证兼容性,都建议在字体两端添加单引号或者双引号:

body {
  font-family: 'Microsoft YaHei', '黑体-简', '\5b8b\4f53';
}
Nach dem Login kopieren

background-image 的 url 内使用引号

如果路径里面有空格,旧版 IE 是无法识别的,会导致路径失效,建议不管是否存在空格,都添加上单引号或者双引号:

div {
  background-image: url('...');
}
Nach dem Login kopieren

避免使用 !important

除去某些极特殊的情况,尽量不要不要使用 !important

!important 的存在会给后期维护以及多人协作带来噩梦般的影响。

当存在样式覆盖层叠时,如果你发现新定义的一个样式无法覆盖一个旧的样式,只有加上 !important 才能生效时,是因为你新定义的选择器的优先级不够旧样式选择器的优先级高。所以,合理的书写新样式选择器,是完全可以规避一些看似需要使用 !important 的情况的。

代码注释

单行注释

星号与内容之间必须保留一个空格。

/* 表格隔行变色 */
Nach dem Login kopieren

多行注释

星号要一列对齐,星号与内容之间必须保留一个空格。

/**
 * Sometimes you need to include optional context for the entire component. Do that up here if it's important enough.
 */
Nach dem Login kopieren

规则声明块内注释

使用 // 注释,// 后面加上一个空格,注释独立一行。

.g-footer {
    border: 0;
    // ....
}
Nach dem Login kopieren

文件注释

文件顶部必须包含文件注释,用 @name 标识文件说明。星号要一列对齐,星号与内容之间必须保留一个空格,标识符冒号与内容之间必须保留一个空格。

/**
 * @name: 文件名或模块名
 * @description: 文件或模块描述
 * @author: author-name(mail-name@domain.com)
 *          author-name2(mail-name2@domain.com)
 * @update: 2015-04-29 00:02
 */
Nach dem Login kopieren
  • @description为文件或模块描述。

  • @update为可选项,建议每次改动都更新一下。

当该业务项目主要由固定的一个或多个人负责时,需要添加@author标识,一方面是尊重劳动成果,另一方面方便在需要时快速定位责任人。

SASS 使用建议

嵌套层级规定

使用 SASSLESS 等预处理器时,建议嵌套层级不超过 3 层。

组件/公用类的使用方法

组件/公用类使用 %placeholders 定义,使用 @extend 引用。如:

%clearfix {
  overflow: auto;
  zoom: 1;
}

.g-header {
  @extend %clearfix;
}
Nach dem Login kopieren

组件类的思考

使用 SASS ,经常会预先定义好一些常用公用组件类,譬如清除浮动,水平垂直居中,文字 ellipsis。又或者多个元素具有同样的样式,我们希望能够少写这部分代码,公共部分抽离出来只写一次,达到复用。

但是复用的方式在 SASS 中有多种,那么是使用单独使用一个类定义,给需要的标签添加,还是使用 @include 或者 @extend在定义的类中引入一个 @mixin,或者一个 @function 呢?

基于让 CSS 更简洁以及代码的复用考虑,采用上面的使用 %placeholders 定义,使用 @extend 引用的方案。

  • %placeholders,只是一个占位符,只要不通过 @extend 调用,编译后不会产生任何代码量

  • 使用 @extend 引用,则是因为每次调用相同的 %placeholders 时,编译出来相同的 CSS 样式会进行合并(反之,如果使用 @include 调用定义好的 @mixin,编译出来相同的 CSS 样式不会进行合并)

  • 这里的组件类特指那些不会动态改变的 CSS 样式,注意与那些可以通过传参生成不同数值样式的 @mixin 方法进行区分

尽量避免使用标签名

使用 SASS ,或者说在 CSS 里也有这种困惑。

假设我们有如下 html 结构:

<div class="g-content">
    <ul class="g-content-list">
        <li class="item"></li>
        <li class="item"></li>
        <li class="item"></li>
        <li class="item"></li>
    </ul>
</div>
Nach dem Login kopieren

在给最里层的标签命名书写样式的时候,我们有两种选择:

.g-content {
  .g-content-list {
    li {
      ...
    }
  }
}
Nach dem Login kopieren

或者是

.g-content {
  .g-content-list {
    .item {
      ...
    }
  }
}
Nach dem Login kopieren

也就是,编译之后生成了下面这两个,到底使用哪个好呢?

  • .g-content .g-content-list li { }

  • .g-content .g-content-list .item { }

基于 CSS 选择器的解析规则(从右向左),建议使用上述第二种 .g-content .g-content-list .item { } ,避免使用通用标签名作为选择器的一环可以提高 CSS 匹配性能。

浏览器的排版引擎解析 CSS 是基于从右向左(right-to-left)的规则,这么做是为了使样式规则能够更快地与渲染树上的节点匹配。 

 

本规范也可以在我的 Github 上看到,欢迎留言或者提 PR。

到此本文结束,如果还有什么疑问或者建议,可以多多交流,原创文章,文笔有限,才疏学浅,文中若有不正之处,万望告知。

Das obige ist der detaillierte Inhalt vonSpezifikationen für das Schreiben von CSS-Verwendungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So schreiben Sie geteilte Zeilen auf Bootstrap So schreiben Sie geteilte Zeilen auf Bootstrap Apr 07, 2025 pm 03:12 PM

Es gibt zwei Möglichkeiten, eine Bootstrap -Split -Zeile zu erstellen: Verwenden des Tags, das eine horizontale Split -Linie erstellt. Verwenden Sie die CSS -Border -Eigenschaft, um benutzerdefinierte Style Split -Linien zu erstellen.

Die Rollen von HTML, CSS und JavaScript: Kernverantwortung Die Rollen von HTML, CSS und JavaScript: Kernverantwortung Apr 08, 2025 pm 07:05 PM

HTML definiert die Webstruktur, CSS ist für Stil und Layout verantwortlich, und JavaScript ergibt eine dynamische Interaktion. Die drei erfüllen ihre Aufgaben in der Webentwicklung und erstellen gemeinsam eine farbenfrohe Website.

So verwenden Sie Bootstrap in Vue So verwenden Sie Bootstrap in Vue Apr 07, 2025 pm 11:33 PM

Die Verwendung von Bootstrap in Vue.js ist in fünf Schritte unterteilt: Startstrap installieren. Bootstrap in main.js. Verwenden Sie die Bootstrap -Komponente direkt in der Vorlage. Optional: benutzerdefinierter Stil. Optional: Verwenden Sie Plug-Ins.

So fügen Sie Bilder auf Bootstrap ein So fügen Sie Bilder auf Bootstrap ein Apr 07, 2025 pm 03:30 PM

Es gibt verschiedene Möglichkeiten, Bilder in Bootstrap einzufügen: Bilder direkt mit dem HTML -IMG -Tag einfügen. Mit der Bootstrap -Bildkomponente können Sie reaktionsschnelle Bilder und weitere Stile bereitstellen. Legen Sie die Bildgröße fest und verwenden Sie die IMG-Fluid-Klasse, um das Bild anpassungsfähig zu machen. Stellen Sie den Rand mit der img-beliebten Klasse ein. Stellen Sie die abgerundeten Ecken ein und verwenden Sie die IMG-Rund-Klasse. Setzen Sie den Schatten, verwenden Sie die Schattenklasse. Größen Sie die Größe und positionieren Sie das Bild im CSS -Stil. Verwenden Sie mit dem Hintergrundbild die CSS-Eigenschaft im Hintergrund.

So ändern Sie Bootstrap So ändern Sie Bootstrap Apr 07, 2025 pm 03:18 PM

Um die Größe der Elemente in Bootstrap anzupassen, können Sie die Dimensionsklasse verwenden, einschließlich: Einstellbreite:.

So richten Sie das Framework für Bootstrap ein So richten Sie das Framework für Bootstrap ein Apr 07, 2025 pm 03:27 PM

Um das Bootstrap -Framework einzurichten, müssen Sie die folgenden Schritte befolgen: 1. Verweisen Sie die Bootstrap -Datei über CDN; 2. Laden Sie die Datei auf Ihrem eigenen Server herunter und hosten Sie sie. 3.. Fügen Sie die Bootstrap -Datei in HTML hinzu; 4. Kompilieren Sie Sass/weniger bei Bedarf; 5. Importieren Sie eine benutzerdefinierte Datei (optional). Sobald die Einrichtung abgeschlossen ist, können Sie die Grid -Systeme, -Komponenten und -stile von Bootstrap verwenden, um reaktionsschnelle Websites und Anwendungen zu erstellen.

So verwenden Sie die Bootstrap -Taste So verwenden Sie die Bootstrap -Taste Apr 07, 2025 pm 03:09 PM

Wie benutze ich die Bootstrap -Taste? Führen Sie Bootstrap -CSS ein, um Schaltflächenelemente zu erstellen, und fügen Sie die Schaltfläche "Bootstrap" hinzu, um Schaltflächentext hinzuzufügen

So sehen Sie das Datum der Bootstrap So sehen Sie das Datum der Bootstrap Apr 07, 2025 pm 03:03 PM

ANTWORT: Sie können die Datumsauswahlkomponente von Bootstrap verwenden, um Daten auf der Seite anzuzeigen. Schritte: Stellen Sie das Bootstrap -Framework ein. Erstellen Sie ein Eingangsfeld für Datumsauswahl in HTML. Bootstrap fügt dem Selektor automatisch Stile hinzu. Verwenden Sie JavaScript, um das ausgewählte Datum zu erhalten.

See all articles