今回はCSSを実戦で使う際の注意点を紹介します。実際の事例を見てみましょう。
クリッピング アニメーションの場合、DOM の再配置によるパフォーマンスの低下を避けるために、幅/高さの代わりにクリップパスを使用します。
.animate { width: 200px; height: 200px; background: #000; animation: 1s clip; } @keyframes clip { 0% { clip-path: inset(0 0 0 0); } 100% { clip-path: inset(0 100% 100% 0); } }
clip-path は、他の通常/不規則なグラフィックをカットするためにも使用できます
.clip { clip-path: polygon(0 100%, 50% 0, 100% 100%, 0 30%, 100% 30%); /* 多边形 */ clip-path: circle(30px at 35px 35px); /* 圆形 */ clip-path: ellipse(30px 25px at 35px 35px); /* 椭圆 */ }
transform3d を使用して GPU アクセラレーションを有効にすることに加えて、will-change を使用して GPU アクセラレーションを強制してアニメーション パフォーマンスを最適化することもできます
.animate { width: 200px; height: 200px; background: #000; animation: 1s clip; will-change: clip-path; } @keyframes clip { 0% { clip-path: inset(0 0 0 0); } 100% { clip-path: inset(0 100% 100% 0); } }
パディングシミュレーションを使用し、その後、子要素の絶対配置
/* 1:1 */ .container { width: 200px; } .container:after { display: block; content: ' '; padding-top: 100%; } /* 16:9 */ .container { width: 200px; } .container:after { display: block; content: ' '; padding-top: calc(100% * 9 / 16); }
を使用します。よく使用される方法:
dislay: inline-block
トップ: 50% + 変換: tranlsateY(-50%)
表示: flex
その他には、上下のパディングのサポート
、表示: table
、 <a href="http://www.php.cn/wiki/902.html" target="_blank">位置<code>padding上下撑高
、display: table
、<a href="http://www.php.cn/wiki/902.html" target="_blank">position</a> + margin: auto
、绝对定位 + margin
等等,这些属于不常用、特殊场景才能用、CSS3之前的hack方式,CSS3之后就不必使用这些来实现垂直居中,就不多说了。
其中display: flex
+ マージン: 自動、絶対位置 + マージン code> など、これらは一般的には使用されず、特殊なシナリオでのみ使用でき、CSS3 以降は垂直方向の中央揃えを実現するためにこれらを使用する必要がないため、使用しません。詳細に入ります。
display: flex
は、ほとんどのシナリオで直接使用できますが、使用できない特殊なシナリオがまだいくつかあります。 この記事の事例を読んだ後、あなたはそれをマスターしたと思います。さらにエキサイティングな方法については、php 中国語 Web サイトの他の関連記事に注目してください。
フロントエンドプロジェクトでのプロジェクト構造の初期化js変数スコープの使用時に発生するバグ🎜🎜以上がCSSを実戦で活用するためのヒントを共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。