ホームページ  >  記事  >  ウェブフロントエンド  >  CSSを実戦で活用するためのヒントを共有

CSSを実戦で活用するためのヒントを共有

php中世界最好的语言
php中世界最好的语言オリジナル
2018-05-24 16:01:411380ブラウズ

今回は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 は、ほとんどのシナリオで直接使用できますが、使用できない特殊なシナリオがまだいくつかあります。
  1. サブ要素が必要です。 Android 4.X と互換性を持たせるためには、テキストの切り捨て ブラウザーは他のメソッド (通常は変換) を使用する必要があります
  2. 子要素には複数行のレイアウトが必要です Android 4.x はフレックスラップをサポートしておらず、複数行のレイアウトを使用できません。

この記事の事例を読んだ後、あなたはそれをマスターしたと思います。さらにエキサイティングな方法については、php 中国語 Web サイトの他の関連記事に注目してください。

推奨読書:

フロントエンドプロジェクトでのプロジェクト構造の初期化

js変数スコープの使用時に発生するバグ🎜🎜

以上がCSSを実戦で活用するためのヒントを共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。