だから私がz-index正しく理解していれば、この状況では完璧です:

下の画像(タグ/カード)を、その上のdivの下に配置します。したがって、鋭いエッジは見えません。どうすればよいですか?
z-index:-1 // on the image tag/card
または
z-index:100 // on the div above
どちらも機能しません。また、このような組み合わせもありません。どうして?
だから私がz-index正しく理解していれば、この状況では完璧です:

下の画像(タグ/カード)を、その上のdivの下に配置します。したがって、鋭いエッジは見えません。どうすればよいですか?
z-index:-1 // on the image tag/card
または
z-index:100 // on the div above
どちらも機能しません。また、このような組み合わせもありません。どうして?
回答:
z-indexプロパティは、のみを持つ要素上で動作position以外の値static(例えばposition: absolute;、position: relative;またはposition: fixed)。
またposition: sticky;、Firefoxでサポートされ、Safariでプレフィックスが付けられ、以前のバージョンのChromeではカスタムフラグの下で機能し、MicrosoftがEdgeブラウザーに追加することを検討中です。
重要
通常の配置のposition: relative場合は、も設定する要素に含めるようにしてくださいz-index。そうしないと、有効になりません。
position: relative、要素がデフォルトで他の相対的な方法で動作しているにもかかわらず、z-indexが機能するように明示的に指定する必要があります
static要素は静的で、内を移動できませんx, y or z planes。私たちと一緒に仕事をしているとき、彼らは引っ越しx plane (left or right)たり、y plane (top or bottom)好きになったりできませんposition: absolute。そして、彼らは移動することもできませんz plane i.e. with z-index。
z-indexグリッド要素での使用に関する問題を認識していますか?
位置を以外の値に設定してもstatic、要素z-indexが機能しない場合は、親要素がz-index設定している可能性があります。
スタッキングコンテキストには階層があり、各スタッキングコンテキストは親のスタッキングコンテキストのスタッキング順に考慮されます。
したがって、次のhtml
div { border: 2px solid #000; width: 100px; height: 30px; margin: 10px; position: relative; background-color: #FFF; }
#el3 { background-color: #F0F; width: 100px; height: 60px; top: -50px; }
<div id="el1" style="z-index: 5"></div>
<div id="el2" style="z-index: 3">
<div id="el3" style="z-index: 8"></div>
</div>
ノーどのように大きな問題ではz-indexでel3設定されます、それは常に下になりel1、それの親が低くスタッキングコンテキストを持っているので。積み重ね順序は、積み重ね順序el3が実際には3.8である5未満のレベルと考えることができます。
親要素のスタックコンテキストを確認する場合は、次のように使用できます。
var el = document.getElementById("#yourElement"); // or use $0 in chrome;
do {
var styles = window.getComputedStyle(el);
console.log(styles.zIndex, el);
} while(el.parentElement && (el = el.parentElement));
多くの場合、要素は機能するように配置する必要がありますz-index。
実際、position: relative質問の要素に適用すると問題が解決する可能性があります(ただし、確実に知るのに十分なコードが提供されていません)。
実際には、position: fixed、position: absoluteとposition: stickyも可能になりますz-indexが、これらの値は、レイアウトを変更します。position: relativeレイアウト乱されることはありません。
基本的に、要素が配置されていない限りposition: static(デフォルト設定)、配置されていると見なされ、z-index機能します。
「Z-indexが機能しないのはなぜですか?」に対する多くの回答 質問は、配置された要素でz-index のみ機能すると主張します。CSS3以降、これは当てはまりません。
ある要素フレックス項目またはグリッドのアイテムを使用することができz-indexたとしてもpositionですstatic。
スペックから:
フレックスアイテムは、生文書順の代わりに使用されるため、変更された文書の順序を除いて、正確に、インラインブロックと同じペイント、および
z-index以外の値autoとしてもスタッキングコンテキストを作成しpositionていますstatic。グリッド項目の塗装順序は正確生文書順の代わりに使用されるため、変更された文書の順序を除いて、インラインブロックと同じであり、そして
z-index以外の値autoとしてもスタッキングコンテキストを作成しpositionていますstatic。
以下は、z-index配置されていないフレックスアイテムでの作業のデモンストレーションです。https://jsfiddle.net/m0wddwxs/
position: staticためposition: relative、フレックスとグリッドのアイテムを扱うのとまったく同じように扱うと述べています。したがって、要素を配置する必要があることはCSS3ではもはや当てはまらないとは言えませんが、CSS3はフレックス項目とグリッド項目を配置されているかのように扱います。たぶん、同じものを見る方法はたった2つです。
position:relative。絶対位置を持つフレックスアイテムの子孫は、フレックスアイテムが配置されていないため、フレックスアイテムを包含ブロックと見なしません。(jsfiddle.net/0yo7utfL/2)
Stacking Context。