検索
ホームページウェブフロントエンドCSSチュートリアルCSS コード最適化のための 12 のヒント_エクスペリエンス交換

1. ID ルール
2. クラス ルール
3. タグ ルール
4. 一般ルール
効率性に関する共通の理解は、Steve Souders が 2013 年に出版した「High-Performance Website Construction」から来ています。 2009 「Advanced Guide」から始まり、この本にはさらに詳しく記載されていますが、ここで完全な参考リストを参照することもできます。また、Google の「効率的な CSS セレクターのベスト プラクティス」で詳細を参照することもできます。
この記事では、高パフォーマンスの CSS を作成するために私が使用しているいくつかの簡単な例とガイドラインを共有したいと思います。これらは、MDN によって作成された効率的な CSS ガイドに触発されており、同様の形式に従っています。

1. 過度の拘束を避ける

原則として、不必要な制約を追加しないでください。

コードをコピー コードは次のとおりです。

// おっと
ul# someid {. .}
.menu#otherid{..}

// OK
#someid {..}
#otherid {..}

2. 子孫セレクターは最悪です

パフォーマンスが低いだけでなく、コードも非常に脆弱で、HTML コードと CSS コードは非常に結合しています。 HTML コードの構造が変更されると、CSS も変更する必要があります。これは大変なことですが、特に大企業では、HTML と CSS を作成する人が同じ人ではないことがよくあります。

コードをコピー コードは次のとおりです。

// 最悪です
html div tr td {..}

3. チェーン (交差) セレクターを避ける

これは、過剰な制約の状況と似ています。より賢明なアプローチは、単純に新しい CSS クラス セレクターを作成することです。

コードをコピー コードは次のとおりです:

// おっと
.menu .left. icon {..}

// OK
.menu-left-icon {..}

4. KISS 原則に従う

次の DOM があると想像してください。

コードをコピー コードは次のとおりです。

対応するルールは次のとおりです...

コードをコピー コードは次のとおりです:

/ / 悪い
#navigator li a {..}

// 良い
#navigator {..}

5. 複合 (コンパクト) 構文を使用する

可能な限り複合構文を使用します。

コードをコピー コードは次のとおりです:

// おっと
.someclass {
padding-top: 20px;
padding-bottom: 20px;
padding-left: 10px;
padding-right: 10px;
背景: #000;
背景-画像: url (../imgs/キャロット.png);
背景-位置: ボトム;
背景-リピート: リピート-x;
}

// わかりました
.someclass {
パディング: 20px 10px 20px 10px;
背景: #000 url(../imgs/キャロット.png)repeat-xbottom;
}

6. 不要な名前空間を避ける

コードをコピー コードは次のとおりです。

// 悪い
.someclass テーブル tr.otherclass td.somerule {..}

// 良い
.someclass .otherclass td.somerule { . .}

7. 不必要な繰り返しを避ける

繰り返しのルールを可能な限り結合します。

コードをコピー コードは次のとおりです。

// おっと

.someclass {
カラー: 赤;
背景: ブルー;
フォントサイズ: 15px;
}

.otherclass {
カラー: 赤;
背景: 青 ;
font-size: 15px;
}

// OK

.someclass, .otherclass {
カラー: 赤;
背景: blue;
font-size: 15px;
}

8. ルールを可能な限り合理化する
上記のルールに基づいて、さらに、異なるカテゴリの繰り返しルールをマージできます。
コードをコピー コードは次のとおりです。

// おっと
.someclass {
色: 赤;
背景: 青;
高さ: 150px;
幅: 150px;
font-size: 16px;
}

.otherclass {
カラー: 赤;
背景: 青;
高さ: 150px;
幅: 150px;
font-size: 8px;
}

// OK
.someclass, .otherclass {
カラー: 赤;
背景: 青; 高さ: 150px;
幅: 150px;
}

.someclass {
font-size: 16px;
}

.otherclass {
font-size: 8px;
}

9. 不明確な命名規則を避ける
セマンティクスを表す名前を使用することが最善です。適切な CSS クラス名は、それがどのようなものであるかではなく、それが何であるかを説明する必要があります。
10. !重要な要素を避ける
実際には、他の高品質セレクターも使用できるはずです。

11. 標準的な申告順序に従います

CSS プロパティを並べ替える一般的な方法はいくつかありますが、以下は私が従う一般的な方法です。

コードをコピー コードは次のとおりです。

.someclass {
/*位置決め */
/* ディスプレイおよびボックス モデル */
/* 背景およびタイポグラフィ スタイル */
/* トランジション */
/* その他 */
}
12. 整理されたコード形式
コードの読みやすさは、保守のしやすさに直接比例します。以下は私が従うフォーマット方法です。
コードをコピー コードは次のとおりです:

// おっと
.someclass -a, .someclass-b, .someclass-c, .someclass-d {
...
}

// わかりました
.someclass-a,
.someclass -b ,
.someclass-c,
.someclass-d {
...
}

// 良い実践例
.someclass {
背景-画像 :
線形グラデーション(#000, #ccc),
線形グラデーション(#ccc, #ddd); 1px 1px #ddd インセット;
}

明らかに、これらは、より効率的で保守しやすくするために、私が独自の CSS で従おうとしているルールのほんの一部にすぎません。さらに詳しく読みたい場合は、MDN の「効率的な CSS の作成ガイド」と Google の「ブラウザ レンダリングの最適化ガイド」を読むことをお勧めします。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
利用CSS怎么创建渐变色边框?5种方法分享利用CSS怎么创建渐变色边框?5种方法分享Oct 13, 2021 am 10:19 AM

利用CSS怎么创建渐变色边框?下面本篇文章给大家分享CSS实现渐变色边框的5种方法,希望对大家有所帮助!

css ul标签怎么去掉圆点css ul标签怎么去掉圆点Apr 25, 2022 pm 05:55 PM

在css中,可用list-style-type属性来去掉ul的圆点标记,语法为“ul{list-style-type:none}”;list-style-type属性可设置列表项标记的类型,当值为“none”可不定义标记,也可去除已有标记。

css与xml的区别是什么css与xml的区别是什么Apr 24, 2022 am 11:21 AM

区别是:css是层叠样式表单,是将样式信息与网页内容分离的一种标记语言,主要用来设计网页的样式,还可以对网页各元素进行格式化;xml是可扩展标记语言,是一种数据存储语言,用于使用简单的标记描述数据,将文档分成许多部件并对这些部件加以标识。

css3怎么实现鼠标隐藏效果css3怎么实现鼠标隐藏效果Apr 27, 2022 pm 05:20 PM

在css中,可以利用cursor属性实现鼠标隐藏效果,该属性用于定义鼠标指针放在一个元素边界范围内时所用的光标形状,当属性值设置为none时,就可以实现鼠标隐藏效果,语法为“元素{cursor:none}”。

rtl在css是什么意思rtl在css是什么意思Apr 24, 2022 am 11:07 AM

在css中,rtl是“right-to-left”的缩写,是从右往左的意思,指的是内联内容从右往左依次排布,是direction属性的一个属性值;该属性规定了文本的方向和书写方向,语法为“元素{direction:rtl}”。

css怎么实现英文小写转为大写css怎么实现英文小写转为大写Apr 25, 2022 pm 06:35 PM

转换方法:1、给英文元素添加“text-transform: uppercase;”样式,可将所有的英文字母都变成大写;2、给英文元素添加“text-transform:capitalize;”样式,可将英文文本中每个单词的首字母变为大写。

css怎么设置i不是斜体css怎么设置i不是斜体Apr 20, 2022 am 10:36 AM

在css中,可以利用“font-style”属性设置i元素不是斜体样式,该属性用于指定文本的字体样式,当属性值设置为“normal”时,会显示元素的标准字体样式,语法为“i元素{font-style:normal}”。

怎么设置rotate在css3的旋转中心点怎么设置rotate在css3的旋转中心点Apr 24, 2022 am 10:50 AM

在css3中,可以用“transform-origin”属性设置rotate的旋转中心点,该属性可更改转换元素的位置,第一个参数设置x轴的旋转位置,第二个参数设置y轴旋转位置,语法为“transform-origin:x轴位置 y轴位置”。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン