ホームページ > ウェブフロントエンド > CSSチュートリアル > 12 の素晴らしい CSS スキルを共有する

12 の素晴らしい CSS スキルを共有する

高洛峰
リリース: 2017-03-21 17:36:56
オリジナル
1446 人が閲覧しました

以下の高度な CSS スキル

  • :not() を使用してメニューに境界線を適用/非適用します

  • 本文に行の高さを追加します

  • すべてが垂直方向の中央に配置されます

  • カンマ区切りリスト

  • 負の nth-child を使用して項目を選択します

  • アイコンにはSVGを使用してください

  • 表示テキストを最適化する

  • 純粋な CSS スライダーの場合は、max-height

  • を使用します 継承 ボックスサイジング

  • テーブルセルの均一な幅

  • Flexbox を使用して余白を取り除くためのさまざまなハック

  • 空のリンクには属性セレクターを使用します

:not() を使用してメニューに境界線を適用/非適用にします

まず各メニュー項目に枠線を追加します

/* add border */
.nav li {
  border-right: 1px solid #666;
}
ログイン後にコピー

…そして最後の要素を削除します…

//* 境界線を削除 */

.nav li:last-child {
  border-right: none;
}
ログイン後にコピー

...:not() 擬似クラスを直接使用して要素を適用できます:

.nav li:not(:last-child) {
  border-right: 1px solid #666;
}
ログイン後にコピー

こうすることで、コードはクリーンで読みやすく、理解しやすくなります。

もちろん、新しい要素に兄弟要素がある場合は、ユニバーサル兄弟セレクター (~) を使用することもできます:

..nav li:first-child ~ li {

  border-left: 1px solid #666;
}
ログイン後にコピー

本文に行の高さを追加します

などに個別に line-height を追加する必要はありません。本文に追加するだけです:

body {
  line-height: 1;
}
ログイン後にコピー

このようにして、テキスト要素は body から簡単に継承できます。

すべてが垂直方向の中央に配置されます

すべての要素を垂直方向の中央に配置するのはとても簡単です:

html, body {
  height: 100%;
  margin: 0;
}

body {
  -webkit-align-items: center;  
  -ms-flex-align: center;  
  align-items: center;
  display: -webkit-flex;
  display: flex;
}
ログイン後にコピー

ほら、とても単純じゃないですか?

注: IE11 のフレックスボックスには注意してください。

カンマ区切りリスト

HTML リスト項目を実際のカンマ区切りリストのように見せます:

ul > li:not(:last-child)::after {
  content: ",";
}
ログイン後にコピー

最後のリスト項目には :not() 疑似クラスを使用します。

負の nth-child を使用して項目を選択します

CSS で負の nth-child を使用して項目 1 から項目 n を選択します。

りー

それはとても簡単です。

アイコンにはSVGを使用してください

アイコンに SVG を使用しない理由はありません:

li {
  display: none;
}

/* select items 1 through 3 and display them */
li:nth-child(-n+3) {
  display: block;
}
ログイン後にコピー

SVG は、すべての解像度タイプに対して優れたスケーラビリティを備えており、IE9 に戻ったすべてのブラウザをサポートします。こうすることで、.png、.jpg、または .gif ファイルを回避できます。

表示テキストを最適化する

場合によっては、フォントがすべてのデバイスで最適に表示されないことがあります。そのため、デバイスのブラウザーを使用してください:

.logo {
  background: url("logo.svg");
}
ログイン後にコピー

注: optimizeLegibility は責任を持って使用してください。さらに、IE/Edge はテキスト レンダリングをサポートしていません。

純粋な CSS スライダーには max-height

を使用してください max-height とオーバーフロー非表示を使用して CSS のみのスライダーを実装します:

html {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
ログイン後にコピー

ボックスのサイズを継承します

ボックスのサイズ設定を HTML に継承させる:

.slider ul {
  max-height: 0;
  overlow: hidden;
}

.slider:hover ul {
  max-height: 1000px;
  transition: .3s ease;
}
ログイン後にコピー

これにより、他の動作を利用するプラグインやその他のコンポーネントでボックスのサイズを変更することが簡単になります。

表のセルの幅は同じです

テーブルは扱いにくいので、必ず table-layout を使用してください: セルの幅を等しく保つために可能な限り固定してください:

html {
  box-sizing: border-box;
}

*, *:before, *:after {
  box-sizing: inherit;
}
ログイン後にコピー

Flexbox で余白をなくすためのさまざまなハック

列区切り文字を使用する必要がある場合は、フレックスボックスの space-between プロパティを使用して、n 番目、最初、最後の子のハックを取り除くことができます:

.calendar {
  table-layout: fixed;
}
ログイン後にコピー

リスト区切り文字が等間隔の位置に表示されるようになりました。

空のリンクには属性セレクターを使用します

要素にテキスト値がないが、href 属性にリンクがある場合にリンクを表示します:

.list {
  display: flex;
  justify-content: space-between;
}

.list .person {
  flex-basis: 23%;
}
ログイン後にコピー

とても便利です。

応援します

これらの高度なテクニックは、IE11 だけでなく、Chrome、Firefox、Safari、Edge の現在のバージョンでも効果的に機能します。

以上が12 の素晴らしい CSS スキルを共有するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート