フロントエンドコードガイド(二)
4530 ワード
フロントエンドコードガイド(一)フロントエンドコードガイド(二)フロントエンドコードガイド(三)
セミコロンはCSS文のセパレータです.文末に置いてください.
最も理想的なのは、ドキュメント全体でボックスモデルが同じであることです.グローバル設定*{box-sizing:border-box;}可能ですが、既定のボックスモデルは特定の要素で変更しないほうがいいです.
要素のデフォルトのスタイルを変更しないで、できるだけ自然なドキュメントストリームに要素を維持します.たとえば、画像の下の空白を削除するには、デフォルトの表示を変更する必要はありません.
同様に、要素をドキュメントフローからできるだけ離れないようにします.
cssは要素を位置決めする方法がたくさんありますが、次の属性/値は使用しないほうがいいです.
セレクタとDOMの結合度を低減する.セレクタが一致する要素が3層構造(擬似クラス、子孫、または兄弟要素)を超える場合.目的の要素に一致するクラスを追加することを考えましょう.
セレクタの過負荷を避ける
プロパティ値とセレクタを上書きしにくいように(優先度が高すぎないように)、idとの使用を減らしましょう.importantの使用
スタイルを上書きするとセレクタやデバッグが難しくなりますので、できるだけ避けてください
継承できるスタイルは繰り返し書かないでください.
コードを簡潔に保ち、できるだけ簡潔な属性を使用し、複数の属性を使用しないようにします.
英語は数式より優れている
古い接頭辞を積極的に削除します.
使用しない単位の値に単位を使用しないでください.相対単位を使用する場合は
透明度を使用する必要がある場合は、
リソースファイルがcssで簡単に描画できる場合は、HTTPリクエストのロードを回避します.
なるべくHacksは使わないように
もし本文が悪くないと感じたら、下の推荐をクリックしてください>>>クリックして原文を読みます
CSS
セミコロン
セミコロンはCSS文のセパレータです.文末に置いてください.
/* */
div {
color: red
}
/* */
div {
color: red;
}
ボックスモデル
最も理想的なのは、ドキュメント全体でボックスモデルが同じであることです.グローバル設定*{box-sizing:border-box;}可能ですが、既定のボックスモデルは特定の要素で変更しないほうがいいです.
/* */
div {
width: 100%;
padding: 10px;
box-sizing: border-box;
}
/* */
div {
padding: 10px;
}
ドキュメントフロー
要素のデフォルトのスタイルを変更しないで、できるだけ自然なドキュメントストリームに要素を維持します.たとえば、画像の下の空白を削除するには、デフォルトの表示を変更する必要はありません.
/* */
img {
display: block;
}
/* */
img {
vertical-align: middle;
}
同様に、要素をドキュメントフローからできるだけ離れないようにします.
/* */
div {
width: 100px;
position: absolute;
right: 0;
}
/* */
div {
width: 100px;
margin-left: auto;
}
位置
cssは要素を位置決めする方法がたくさんありますが、次の属性/値は使用しないほうがいいです.
display: block;
display: flex;
position: relative;
position: sticky;
position: absolute;
position: fixed;
セレクタ
セレクタとDOMの結合度を低減する.セレクタが一致する要素が3層構造(擬似クラス、子孫、または兄弟要素)を超える場合.目的の要素に一致するクラスを追加することを考えましょう.
/* */
div:first-of-type :last-child > p ~ *
/* */
div:first-of-type .info
セレクタの過負荷を避ける
/* */
img[src$=svg], ul > li:first-child {
opacity: 0;
}
/* */
[src$=svg], ul > :first-child {
opacity: 0;
}
とくせい
プロパティ値とセレクタを上書きしにくいように(優先度が高すぎないように)、idとの使用を減らしましょう.importantの使用
/* */
.bar {
color: green !important;
}
.foo {
color: red;
}
/* */
.foo.bar {
color: green;
}
.foo {
color: red;
}
オーバーライド(Override)
スタイルを上書きするとセレクタやデバッグが難しくなりますので、できるだけ避けてください
/* */
li {
visibility: hidden;
}
li:first-child {
visibility: visible;
}
/* */
li + li {
visibility: hidden;
}
継承
継承できるスタイルは繰り返し書かないでください.
/* */
div h1, div p {
text-shadow: 0 1px 0 #fff;
}
/* */
div {
text-shadow: 0 1px 0 #fff;
}
簡潔
コードを簡潔に保ち、できるだけ簡潔な属性を使用し、複数の属性を使用しないようにします.
/* */
div {
transition: all 1s;
top: 50%;
margin-top: -10px;
padding-top: 5px;
padding-right: 10px;
padding-bottom: 20px;
padding-left: 10px;
}
/* */
div {
transition: 1s;
top: calc(50% - 10px);
padding: 5px 10px 20px;
}
言語
英語は数式より優れている
/* */
:nth-child(2n + 1) {
transform: rotate(360deg);
}
/* */
:nth-child(odd) {
transform: rotate(1turn);
}
接頭辞
古い接頭辞を積極的に削除します.
/* */
div {
transform: scale(2);
-webkit-transform: scale(2);
-moz-transform: scale(2);
-ms-transform: scale(2);
transition: 1s;
-webkit-transition: 1s;
-moz-transition: 1s;
-ms-transition: 1s;
}
/* */
div {
-webkit-transform: scale(2);
transform: scale(2);
transition: 1s;
}
アニメーション(Animation)
animations
およびtransitions
は、transitions
が優先的に選択される.opacity
およびtransform
の属性を除いて、他の属性はanimations
を使用しないでください./* */
div:hover {
animation: move 1s forwards;
}
@keyframes move {
100% {
margin-left: 100px;
}
}
/* */
div:hover {
transition: 1s;
transform: translateX(100px);
}
たんい
使用しない単位の値に単位を使用しないでください.相対単位を使用する場合は
rem
を使用したほうがいいです.ミリ秒ではなく秒を使用/* */
div {
margin: 0px;
font-size: .9em;
line-height: 22px;
transition: 500ms;
}
/* */
div {
margin: 0;
font-size: .9rem;
line-height: 1.5;
transition: .5s;
}
色
透明度を使用する必要がある場合は、
rgba
を使用します./* */
div {
color: hsl(103, 54%, 43%);
}
/* */
div {
color: #5a3;
}
描画
リソースファイルがcssで簡単に描画できる場合は、HTTPリクエストのロードを回避します.
/* */
div::before {
content: url(white-circle.svg);
}
/* */
div::before {
content: "";
display: block;
width: 20px;
height: 20px;
border-radius: 50%;
background: #fff;
}
Hacks
なるべくHacksは使わないように
/* */
div {
// position: relative;
transform: translateZ(0);
}
/* */
div {
/* position: relative; */
will-change: transform;
}
もし本文が悪くないと感じたら、下の推荐をクリックしてください>>>クリックして原文を読みます