ホームページ >ウェブフロントエンド >htmlチュートリアル >高度な CSS スキルのまとめ_html/css_WEB-ITnose
私たちは普段コードを書くときに、CSS のスキルを習得していませんか? 今日は「コードを簡潔かつ効率的にするための高度なCSSテクニックのまとめ」を共有したいと思います。誰もがこれらのヒントをマスターする必要があります。これにより、Web ページを非常に効率的に作成できるようになります。
まず、各メニュー項目に境界線を追加します
/* add border */.nav li { border-right: 1px solid #666;}
...次に最後の要素を削除します...
//* remove border */.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- を追加する必要はありませんそれぞれの
、
body { line-height: 1;}
このようにして、テキスト要素を本文から簡単に継承できます。
すべての要素を縦方向に中央揃えにするのはとても簡単です:
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() 疑似クラスを使用します。
在CSS中使用负的 nth-child 选择项目1到项目n。
li { display: none;}/* select items 1 through 3 and display them */li:nth-child(-n+3) { display: block;}
とても簡単です。
アイコンに SVG を使用しない理由はありません。
.logo { background: url("logo.svg");}
SVG は、すべての解像度タイプに対して優れた拡張性を備え、IE9 までのすべてのブラウザをサポートします。こうすることで、.png、.jpg、または .gif ファイルを回避できます。
すべてのデバイスでフォントが最適に表示されないことがあります。そのため、デバイスのブラウザーを使用してください:
html { -moz-osx-font-smoothing: grayscale; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;}
注: optimizeLegibility は責任を持って使用してください。また、IE/Edge はテキスト レンダリングをサポートしていません。
max-height とオーバーフロー非表示を使用して、CSS のみのスライダーを実装します。
.slider ul { max-height: 0; overlow: hidden;}.slider:hover ul { max-height: 1000px; transition: .3s ease;}
box-sizing に HTML を継承させます。
html { box-sizing: border-box;}*, *:before, *:after { box-sizing: inherit;}
これにより、他の動作を利用するプラグインや他のコンポーネントでボックスのサイズを変更することが簡単になります。
表は操作が面倒なので必ずtable-layout:fixed as much as possible to keep celles of the width:
.calendar { table-layout: fixed;}
列区切り文字を使用する必要がある場合、フレックスボックスの space-between プロパティを使用して、n 番目、最初、最後の子ハックを取り除くことができます:
.list { display: flex; justify-content: space-between;}.list .person { flex-basis: 23%;}
Now 、リストの区切り シンボルは等間隔の位置に表示されます。
3499910bf9dac5ae3c52d5ede7383485 要素にテキスト値がなく、href 属性にリンクがある場合にリンクを表示します:
a[href^="http"]:empty::before { content: attr(href);}
とても便利です。
◆これらの高度なテクニックをサポートし、現在のバージョンの Chrome、Firefox、Safari、Edge、IE11 で効果的に動作します。