Zインデックスの最小値と最大値?


518

HTMLページにdivがあります。何らかの条件に基づいてこのdivを表示していますが、マウスカーソルをポイントしたHTML要素の後ろにdivが表示されています。

私は0〜999999のz-indexのすべての値を試しました。これがなぜ起こっているのか誰にも教えてもらえますか?

CSSのZ-INDEXプロパティの最小値または最大値はありますか?

.divClass {
     position: absolute; 
     left: 25px; 
     top: 25px; 
     width: 320px;
     height: 300px; 
     z-index: 1000; 
}
<table cellspacing="0" cellpadding="0" width="100%">
  <tr>
    <td>
      <asp:HyperLink ID="lnkProgram" runat="server"></asp:HyperLink>
    </td>
  </tr>
  <tr>
     <td>
         <div class="divClass">
           Some Data
         </div>
     </td>
  </tr> 
</table>

私は.divClass<asp:hyperlink>jQueryを使用してonclickでdivを表示および非表示にしています。


問題はおそらくz-indexとは特に関係ありません。動作を示すHTMLとCSSの例を挙げていただけますか?これはどのブラウザで発生していますか?
roryf 2009年

ただ興味があるなら、テーブル、いくつかのコンテンツ、リンク、divを使わずに同じことを試すことができます。また、開発中に確実に使用できるように、背景色をdivに配置します。
roborourke

60
"Z-INDEXプロパティのすべての値を0から999999まで試行しました。" それを信じるのは難しいと思います。
sampathsris 2014年

4
@Krumia私はしません、彼はJSで0-999999の間のすべてのz-index値を試すことができます...
単なる

4
display: noneCSSで実際に言及した人はいませんか?
Mark Ba​​ijens

回答:


386
┌──────────────────────┬───────────────────┬──────────────────────────────────┐
│ Browser              │ Max z─index value │ When exceeded, value changes to: │
╞══════════════════════╪═══════════════════╪══════════════════════════════════╡
│ Firefox 0 - 2        │ 2147483647        │ element disappears               │
├──────────────────────┼───────────────────┼──────────────────────────────────┤
│ Firefox 3            │ 2147483647        │ 0                                │
├──────────────────────┼───────────────────┼──────────────────────────────────┤
│ Firefox 4+           │ 2147483647        │ 2147483647                       │
├──────────────────────┼───────────────────┼──────────────────────────────────┤
│ Safari 0 - 3         │ 16777271          │ 16777271                         │
├──────────────────────┼───────────────────┼──────────────────────────────────┤
│ Safari 4+            │ 2147483647        │ 2147483647                       │
├──────────────────────┼───────────────────┼──────────────────────────────────┤
│ Internet Explorer 6+ │ 2147483647        │ 2147483647                       │
├──────────────────────┼───────────────────┼──────────────────────────────────┤
│ Chrome 29+           │ 2147483647        │ 2147483647                       │
├──────────────────────┼───────────────────┼──────────────────────────────────┤
│ Opera 9+             │ 2147483647        │ 2147483647                       │
└──────────────────────┴───────────────────┴──────────────────────────────────┘

4
彼はネガティブな意味だと思います。
Gavin

41
どのようにしてこれらに遭遇しましたか?
2540625

モバイルSafari / Chrome / Firefoxの数字はありますか?
2540625

30
、興味のある人のために2,147,483,647 = 2^31 - 1。それはメルセンヌの素数です。
Reggie Pinkham 2017

2
@BehnamMohammadi、標準的な振る舞いはどうあるべきですか?
パセリエ2017

306

http://www.w3.org/TR/CSS21/visuren.html#z-index

「z-index」

:auto | <整数> | 受け継ぐ

http://www.w3.org/TR/CSS21/syndata.html#numbers

一部の値タイプには、整数値(<integer>で示される)または実数値(<number>で示される)がある場合があります。実数と整数は10進表記でのみ指定されます。<整数>は、「0」から「9」までの1つ以上の数字で構成されます。<number>は、<integer>にすることも、ゼロ以上の数字とそれに続くドット(。)に続く1つ以上の数字にすることもできます。整数と実数の両方の前に、符号を示す「-」または「+」を付けることができます。-0は0と同等であり、負の数ではありません。

整数または実数を値として許可する多くのプロパティは、実際には値をある範囲に制限し、多くの場合負でない値に制限されます。

したがって、CSS標準では基本的にz-index値に制限はありませんが、ほとんどのブラウザーは実際には符号付き32ビット値(-2147483648〜+2147483647)に制限していると思います(64は少し上になり、最近は32ビット未満のものを使用しても意味がありません)


17
Safari 3の最大z-index値は16777271であったことに注意することが重要です。これはSafari 4の32ビット標準に引き上げられたため、古いブラウザーをターゲットにしている場合にのみ問題になります。また、Safari 3でも、16777271を超えると上限が設定されるため、非常に大きなz-index値を使用して複数の要素を並べ替えない限り、問題は発生しません(つまり、1つの要素を2147483647のz-index値に設定します)。要素がz-index> 16777271を持つ別の要素と競合しない限り、要素はどのブラウザーでも最上部に留まることが保証されます。
Doktor J

6
@DoktorJなぜそれが16777271なのか誰か知っていますか?24ビットの符号なし整数の制限より56多いのは奇妙に思えます。
ジョールズ2016

2
@Joolsはwebkitの開発者であるEric Seidelによると、これは24ビットのビットフィールドを使用した結果ですlog base 2 (lg) = lg(16777271)
Janosch

2
@Janoschすみません、わかりません。lg(16777271)は24より大きいです。24ビットのビットフィールドでは十分ではないと私は思っていました。
ジョールズ

@ Janosch、2 ^ 24 = 1677721616777271したがって、25ビットが必要になります。
パチェリエ2017

157

私のテストでz-index: 2147483647は、これが最大値であり、OS XのFF 3.0.1でテストされています。整数オーバーフローのバグを発見しました。入力するとz-index: 2147483648(2147483647 + 1)、要素が他のすべての要素の後ろにくるだけです。少なくともブラウザはクラッシュしません。

また、学ぶべきことは、z-indexプロパティに大きな値を入力することに注意してください。


57
この(2147483647)は、... 32ビットのオペレーティング・システム上の符号付き整数の最大の正の値であるため
バダ・ハリ

4
私は番号がないと思うラップアラウンド値は2147483647を超えている場合...私はそれが可能性が高いのブラウザだけで一定の値として、この値を超え、任意の数を扱うことだと思う、例えば0
オリバー・クレア

3
たぶんあなたの価値は単にマイナスになるかもしれません...例えば-2147483647
Wahyu Fahmy

3
最新のブラウザでは、2147483648を超えると、要素が他の要素の背後に移動しません
Zach Saucier 14

25

Z-indexの最小値は0です。最大値はブラウザのタイプによって異なります。

ここに画像の説明を入力してください


4
実際には、Zインデックスは負の数になる可能性があります。負のz-indexを持つ配置された要素は、スタックコンテキスト内で最初に順序付けられるため、他のすべての要素の後ろに表示されます。次のドキュメントもご覧ください:w3.org/TR/CSS22/visuren.html#z-index
magikMaker

17
コピーと貼り付けが簡単:2147483647
キャンドルジャック

Z-indexには負の数を指定できますが、たとえば、Safari for iOS 11.0.2の場合、このプロパティに問題があります。
kris_IV 2017年

サントシュ、これらの数字はどこで手に入れたの?Behnamの回答からコピーしてIE7とIE8を追加しましたか?
CPHPython

21

最大値を超えたときのブラウザーの反応と同様に、ブラウザーに依存します(ただし、すべてのブラウザーの最新バージョンは2147483638で最大になるはずです)。

http://www.puidokas.com/max-z-index/



21

経験上、正しい最大値z-indexは2147483638 だと思います。


7
あなたは間違っているようです。エリックPoidokasによって2009年に作られたテストをよれば、(オーバーフローの要素を落とす危険性なし)最大のz-index値が2147483647である
マーティン

14

Z-Indexが機能するのは、Z-Indexが適用されている、position: relative;またはposition: absolute;適用されている要素のみです。それが問題ではない場合は、サンプルページを参照してさらに役立つようにする必要があります。

編集:良い医者はすでに完全な説明をしていますが、簡単なバージョンは最小が0であり、負の数と最大にすることはできないためです-まあ、ほとんどのデザインでは本当に10を超える必要はないでしょう。


5
「z-index:-1;」を使用しました 要素を「シンク」して、クリックできないようにします。これはおそらく人気のあるソリューションではありませんが、機能します。:P
Ty。

17
これは少し遅いのですが、position:fixedでも機能します。
TCCV 2010

7
私の知る限り、Zインデックス値には負の整数を使用できます。
d -_- b

なぜz-index:1000を指定するのかと思いますが、実際のz-indexはautoであるとブラウザから言われました。位置はトリックをします。
Wu Wu

6

親/兄弟が指定されたz-indexを持っていないためにz-indexが機能していない場合がよくあります。

だからあなたが持っている場合:

<div id="1">
    <a id="2" style="z-index:2"></a>
    <div id="3" style="z-index:1"></div>
    <button id="4"></button>
</div>

アイテム#3、または#4がクリック/ホバースペースで#2と競合している可能性があります。ただし、#1をz-index 0に設定すると、z-indexの兄弟がそれらを独立したスタックに配置して、同じスタックになりました。正しくZ-indexされます。

これは、有用でかなり人間味のある説明です:http : //foohack.com/2007/10/top-5-css-mistakes/  


4
私たちがこのトピックについて話している間、もう1つの一般的な問題は、position: relative;そのような問題がないことです。
ライアンテイラー

1
実際には、元の投稿をもう一度読んでください。そうですね、これはおそらく彼の問題です。
ライアンテイラー

5

上記のユーザーは、「まあ、ほとんどのデザインで10を超える必要はない」と言います。

プロジェクトによっては、z-indexes 0-1またはz-indexes 0-10000のみが必要な場合があります。多くの場合、上位桁で再生する必要があります...特にライトボックスビューアを使用している場合(9999が標準のように見え、Zインデックスを上に置きたい場合は、それを超える必要があります!)


0

一方でINT_MAX、おそらく最も安全な賭けである、WebKitが明らかに内部的にダブルスを使用していますので、可能にする非常に大規模な(一定の精度)の数字を。LLONG_MAXたとえば、少なくとも64ビットChromiumとWebkitGTKでは正常に機能しますが、9223372036854776000に丸められます。

(本当に、本当に多くのzインデックス必要かどうかを慎重に検討する必要がありますが…)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.