CSS3の不透明度属性による重なり順問題の解決
この記事では、CSS3の不透明度プロパティによって引き起こされる重なり順の問題を解決する方法を主に紹介します 必要な友達がそれを参照できるように、不透明度属性値が1未満のレイヤーが他のレイヤーを覆ってしまう問題に焦点を当てています。
最近の作品で、opacity属性を使用してページ全体を透明にする際に問題が発見されました。 2 つのレイヤーが重なっている場合、不透明度属性と 1 未満の属性値を持つレイヤーが後続のレイヤーを上書きします。そこで、不透明度を検証する実験をしてみました。 Web ページのカスケード ルールは次のとおりです。どちらのレイヤーにも絶対属性または相対属性としてposition 属性が定義されていない場合、後ろに配置されているレイヤーの HTML コードが一番上に表示されます。 Position 属性を指定し、z-index 属性を設定した場合は、値が大きい方が上になります。 問題が見つかりました
Zインデックスがアクティブ化されていない通常のレイヤーの場合、そのレイヤーが1未満の属性値を持つ不透明属性を使用している場合、どのレイヤーがその上に表示されます。デモを作ってみましょう。コードは次のとおりです。
<!DOCTYPE html> <html> <head> <title>带有 opacity 的层叠问题</title> <style> html{padding:40px;} .dd{width:100px;height:100px;} a{background:red;} b{background:blue;margin-left:20px;margin-top:-80px;} c{background:green;margin-left:40px;margin-top:-80px;} </style> </head> <body> <p id=”a”></p> <p id=”b”></p> <p id=”c”></p> </body> </html>
HTML ファイルとして保存して開くと、通常の順序が表示されます
このとき、#a に属性 opacity: 0.9 を追加しました。問題が起こったので、他の 2 つをカバーしました 各レイヤー
別のレイヤー (例: #c) にも 1 未満の不透明度値 (例: 0.8) が設定されている場合にのみ、後続の #c は通常のルールをインストールできます#a をカバーします。
このようにして、不透明度属性が1未満のレイヤーが追加され、より高いレベルに引き上げられます。内部の科学的原理については、私にはわかりません。おそらく小さなバグかもしれません。しかし、時にはこれが起こりたくないこともあります。
問題を解決してください
それでは、この問題をどうやって解決するのでしょうか?前述したように、通常の状況では、位置と Z インデックスを指定したレイヤーは通常のレイヤーよりも高いレベルになります。では、不透明度を指定したレイヤーは、位置を指定したレイヤーとどのように比較されるのでしょうか。 #b に相対的な位置: を追加して見てみましょう。このときのスタイルコードは次のとおりです:
#a{background:red;opacity:0.9;} b{background:blue;margin-left:20px;margin-top:-80px;position:relative;} c{background:green;margin-left:40px;margin-top:-80px;opacity:0.8;}
保存して更新すると、次のような効果が表示されます:
つまり、レイヤーの相対位置属性を使用した後、レベルと不透明度を同じにすることができ、その後は通常のソートに従ってカスケード表示が行われます(以降の実験では絶対属性値もテストしましたが、結果は相対属性値と同じでした)。 #c の不透明度属性を解除すると、#c が最下位にランクされていることがわかります。
まだ終わっていません。前に#bのposition:relative属性をアクティブにしただけで、z-indexはまだ使用していません。 #b の z-index (例: 100) を設定します。明らかに、#b が最上位になります。
position属性値のabsoluteとrelativeを使用したレイヤーは、通常のレイヤーよりも上位になります。 1未満の不透明度属性を使用したレイヤーも通常のレイヤーより上位で、指定位置のレイヤーと同じレイヤーになりますが、z-index属性をサポートしていないため、指定位置のレイヤーが使用できます。バンドをカバーするための z-index 属性。不透明度プロパティが 1 未満のレイヤー。
以上がCSS3の不透明度属性による重なり順問題の解決の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











純粋な CSS3 で波の効果を実現するにはどうすればよいですか?この記事ではSVGとCSSアニメーションを使って波のエフェクトを作成する方法をご紹介しますので、お役に立てれば幸いです。

この記事では、頻繁に登場する様々な奇妙な形のボタンをCSSを使って簡単に実現する方法を紹介しますので、ぜひ参考にしてください。

2 つの方法: 1. display 属性を使用して、要素に「display:none;」スタイルを追加するだけです。 2. Position 属性と top 属性を使用して、要素の絶対位置を設定し、要素を非表示にします。要素に「position:absolute;top:-9999px;」スタイルを追加するだけです。

CSS では、border-image 属性を使用してレースの境界線を実現できます。 border-image 属性では、画像を使用して境界線を作成できます。つまり、境界線に背景画像を追加できます。背景画像をレース スタイルとして指定するだけで済みます。構文「border-image: url (画像パス) は、内側への画像境界線の幅。開始を繰り返すかどうか;"。

実装方法: 1. ":active" セレクターを使用して、画像上のマウス クリックの状態を選択します; 2. 変換属性とscale() 関数を使用して、画像の拡大効果を実現します。構文 "img:active {transform : スケール(x 軸倍率、y 軸倍率);}"。

テキストカルーセルと画像カルーセルを作成するにはどうすればよいですか?皆さんが最初に考えるのはjsを使うかどうかですが、実はテキストカルーセルや画像カルーセルも純粋なCSSでも実現できますので実装方法を見ていきましょう。

CSS3 では、「animation-timing-function」属性を使用してアニメーションの回転速度を設定できます。この属性は、アニメーションがサイクルを完了する方法を指定し、アニメーションの速度曲線を設定するために使用されます。構文は「element {アニメーションタイミング関数: 速度属性値;}"。

css3 のアニメーション効果には変形があり、「animation: アニメーション属性 @keyframes ..{..{transform: 変換属性}}」を使用して変形アニメーション効果を実現できます。アニメーション属性はアニメーション スタイルを設定するために使用され、変形スタイルを設定するには、transform 属性を使用します。
