目次
1. 白黒画像
2. メニューに境界線を適用/非適用するには:not() を使用します
3. ページの上部のシャドウ
4. 本文に line-height を追加します
5. すべてを垂直方向に中央揃えにする
6. カンマ区切りリスト
7. 負の nth-child を使用して項目を選択します
8. アイコンに SVG を使用します
9. 表示テキストを最適化します
10. 純粋な CSS スライダーには max-height を使用します
11. sizing
12. 表のセルの幅は同じにする
13. Flexbox を使用してマージンのさまざまなハックを削除します
14. 空のリンクに属性セレクターを使用します
15. マウスのダブルクリックを検出します
17. CSS3 calc() の使用法
ホームページ ウェブフロントエンド htmlチュートリアル 20 の高度な CSS ヒントのまとめ_html/css_WEB-ITnose

20 の高度な CSS ヒントのまとめ_html/css_WEB-ITnose

Jun 21, 2016 am 08:54 AM

1. 白黒画像

このコードにより、カラー写真が白黒写真として表示されます。素敵だと思いませんか?

img.desaturate {    filter: grayscale(100%);    -webkit-filter: grayscale(100%);    -moz-filter: grayscale(100%);    -ms-filter: grayscale(100%);    -o-filter: grayscale(100%);}
ログイン後にコピー

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

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

/* 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;}
ログイン後にコピー

3. ページの上部のシャドウ

次の単純な CSS3 コード スニペットは、Web ページに美しいトップ シャドウ効果を追加できます。

body:before {          content: "";          position: fixed;          top: -10px;          left: 0;          width: 100%;          height: 10px;           -webkit-box-shadow: 0px 0px 10px rgba(0,0,0,.8);          -moz-box-shadow: 0px 0px 10px rgba(0,0,0,.8);          box-shadow: 0px 0px 10px rgba(0,0,0,.8);           z-index: 100;}
ログイン後にコピー

4. 本文に line-height を追加します

を追加する必要はありません。各ページに行の高さを個別に設定 p、h マークなど。本文に追加するだけです:

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

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

5. すべてを垂直方向に中央揃えにする

すべての要素を垂直方向に中央揃えにするのはとても簡単です。

html, body {  height: 100%;  margin: 0;}body {  -webkit-align-items: center;    -ms-flex-align: center;    align-items: center;  display: -webkit-flex;  display: flex;}
ログイン後にコピー

簡単ですよね。

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

6. カンマ区切りリスト

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

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

最後のリスト項目には :not( ) 疑似クラス。

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

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

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

8. アイコンに SVG を使用します

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

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

SVG は、すべての解像度タイプの互換性に対して適切に調整されます。また、IE9 に戻ったすべてのブラウザをサポートします。こうすることで、.png、.jpg、または .gif ファイルを回避できます。

9. 表示テキストを最適化します

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

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

注: を使用してください。責任を持って可読性を最適化します。また、IE/Edge はテキスト レンダリングをサポートしていません。

10. 純粋な CSS スライダーには max-height を使用します

CSS のみのスライダーを実装するには max-height とオーバーフロー非表示を使用します:

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

11. sizing

box-sizing に html を継承させます:

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

これにより、他の動作を利用するプラグインや他のコンポーネントでの box-sizing の変更が簡単になります。

12. 表のセルの幅は同じにする

表を扱うのは非常に面倒なので、必ず table-layout:fixed を使用してセルの幅を同じにしてください:

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

13. Flexbox を使用してマージンのさまざまなハックを削除します

列区切り文字を使用する必要がある場合は、次の方法で nth-child、first-child、last-child を削除できます。フレックスボックスハックの space-between プロパティ:

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

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

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

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

a[href^="http"]:empty::before {  content: attr(href);}
ログイン後にコピー

非常に便利です。

15. マウスのダブルクリックを検出します

HTML:

<div class="test3">  <span><input type="text" value=" " readonly="true" />  <a href="http://renpingjun.com">Double click me</a></span></div>
ログイン後にコピー

CSS は三角形を書き込みます

.test3 span {  position: relative;}.test3 span a {  position: relative;  z-index: 2;}.test3 span a:hover, .test3 span a:active {  z-index: 4;}.test3 span input {  background: transparent;  border: 0;  cursor: pointer;  position: absolute;  top: -1px;  left: 0;  width: 101%;  /* Hacky */  height: 301%; /* Hacky */  z-index: 3;}.test3 span input:focus {  background: transparent;  border: 0;  z-index: 1;}
ログイン後にコピー

17. CSS3 calc() の使用法

/* create an arrow that points up */div.arrow-up {  width:0px;  height:0px;  border-left:5px solid transparent;  /* left arrow slant */  border-right:5px solid transparent; /* right arrow slant */  border-bottom:5px solid #2f2f2f; /* bottom, add background color here */  font-size:0px;  line-height:0px;} /* create an arrow that points down */div.arrow-down {  width:0px;  height:0px;  border-left:5px solid transparent;  border-right:5px solid transparent;  border-top:5px solid #2f2f2f;  font-size:0px;  line-height:0px;} /* create an arrow that points left */div.arrow-left {  width:0px;  height:0px;  border-bottom:5px solid transparent;  /* left arrow slant */  border-top:5px solid transparent; /* right arrow slant */  border-right:5px solid #2f2f2f; /* bottom, add background color here */  font-size:0px;  line-height:0px;} /* create an arrow that points right */div.arrow-right {  width:0px;  height:0px;  border-bottom:5px solid transparent;  /* left arrow slant */  border-top:5px solid transparent; /* right arrow slant */  border-left:5px solid #2f2f2f; /* bottom, add background color here */  font-size:0px;  line-height:0px;}
ログイン後にコピー
calc() の使用法は関数に似ており、要素に動的な値を設定できます:

18. テキストのグラデーション

/* basic calc */.simpleBlock {  width: calc(100% - 100px);} /* calc in calc */.complexBlock {  width: calc(100% - 50% / 3);  padding: 5px calc(3% - 2px);  margin-left: calc(10% + 10px);}
ログイン後にコピー
テキストのグラデーション効果は非常に人気があり、CSS3 を使用して簡単に実現できます:

19. マウス イベントを無効にする

h2[data-text] {  position: relative;}h2[data-text]::after {  content: attr(data-text);  z-index: 10;  color: #e3e3e3;  position: absolute;  top: 0;  left: 0;  -webkit-mask-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0,0,0,0)), color-stop(50%, rgba(0,0,0,1)), to(rgba(0,0,0,0)));}
ログイン後にコピー
CSS3 の新しいポインター イベント要素のマウス イベントを無効にできます。たとえば、次のスタイルが設定されている場合、リンクをクリックできません。

20. テキストをぼかし

.disabled { pointer-events: none; }
ログイン後にコピー
シンプルで美しいテキストぼかし効果、シンプルで美しい!

.blur {   color: transparent;   text-shadow: 0 0 5px rgba(0,0,0,0.5);}
ログイン後にコピー


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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

&lt; Progress&gt;の目的は何ですか 要素? &lt; Progress&gt;の目的は何ですか 要素? Mar 21, 2025 pm 12:34 PM

この記事では、HTML&lt; Progress&gt;について説明します。要素、その目的、スタイリング、および&lt; meter&gt;との違い要素。主な焦点は、&lt; Progress&gt;を使用することです。タスクの完了と&lt; Meter&gt; statiの場合

&lt; datalist&gt;の目的は何ですか 要素? &lt; datalist&gt;の目的は何ですか 要素? Mar 21, 2025 pm 12:33 PM

この記事では、HTML&lt; Datalist&GT;について説明します。オートコンプリートの提案を提供し、ユーザーエクスペリエンスの改善、エラーの削減によりフォームを強化する要素。

&lt; meter&gt;の目的は何ですか 要素? &lt; meter&gt;の目的は何ですか 要素? Mar 21, 2025 pm 12:35 PM

この記事では、html&lt; meter&gt;について説明します。要素は、範囲内でスカラーまたは分数値を表示するために使用され、Web開発におけるその一般的なアプリケーション。それは差別化&lt; Meter&gt; &lt; Progress&gt;およびex

HTML5のクロスブラウザー互換性のベストプラクティスは何ですか? HTML5のクロスブラウザー互換性のベストプラクティスは何ですか? Mar 17, 2025 pm 12:20 PM

記事では、HTML5クロスブラウザーの互換性を確保するためのベストプラクティスについて説明し、機能検出、プログレッシブエンハンスメント、およびテスト方法に焦点を当てています。

HTML5フォーム検証属性を使用してユーザー入力を検証するにはどうすればよいですか? HTML5フォーム検証属性を使用してユーザー入力を検証するにはどうすればよいですか? Mar 17, 2025 pm 12:27 PM

この記事では、ブラウザのユーザー入力を直接検証するために、必要、パターン、MIN、MAX、および長さの制限などのHTML5フォーム検証属性を使用して説明します。

ビューポートメタタグとは何ですか?レスポンシブデザインにとってなぜそれが重要なのですか? ビューポートメタタグとは何ですか?レスポンシブデザインにとってなぜそれが重要なのですか? Mar 20, 2025 pm 05:56 PM

この記事では、モバイルデバイスのレスポンシブWebデザインに不可欠なViewportメタタグについて説明します。適切な使用により、最適なコンテンツのスケーリングとユーザーの相互作用が保証され、誤用が設計とアクセシビリティの問題につながる可能性があることを説明しています。

HTML5&lt; time&gt;を使用するにはどうすればよいですか 日付と時刻を意味的に表す要素? HTML5&lt; time&gt;を使用するにはどうすればよいですか 日付と時刻を意味的に表す要素? Mar 12, 2025 pm 04:05 PM

この記事では、html5&lt; time&gt;について説明します。セマンティックデート/時刻表現の要素。 人間の読み取り可能なテキストとともに、マシンの読みやすさ(ISO 8601形式)のDateTime属性の重要性を強調し、Accessibilitを増やします

&lt; iframe&gt;の目的は何ですか タグ?使用する際のセキュリティ上の考慮事項は何ですか? &lt; iframe&gt;の目的は何ですか タグ?使用する際のセキュリティ上の考慮事項は何ですか? Mar 20, 2025 pm 06:05 PM

この記事では、&lt; iframe&gt;外部コンテンツをWebページ、その一般的な用途、セキュリティリスク、およびオブジェクトタグやAPIなどの代替案に埋め込む際のタグの目的。

See all articles