ค่าต่ำสุดและสูงสุดของดัชนีซี?


518

ฉันมี div ในหน้า HTML ของฉัน ฉันกำลังแสดง div นี้ตามเงื่อนไขบางอย่าง แต่ div แสดงอยู่หลังองค์ประกอบ HTML ที่ฉันชี้เคอร์เซอร์เมาส์

ฉันได้ลองใช้ค่าทั้งหมดสำหรับดัชนี z ตั้งแต่ 0 - 999999 ใครสามารถบอกฉันได้ว่าทำไมสิ่งนี้ถึงเกิดขึ้น

มีค่าต่ำสุดหรือสูงสุดของคุณสมบัติ Z-INDEX ของ CSS หรือไม่

.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>

ฉันกำลังแสดงและซ่อน div ด้วย.divClassonclick ผ่านการ<asp:hyperlink>ใช้ jQuery


ปัญหาอาจไม่เกี่ยวข้องกับ z-index โดยเฉพาะ คุณยกตัวอย่าง HTML และ CSS ที่แสดงพฤติกรรมได้หรือไม่ เบราว์เซอร์ใดที่คุณประสบปัญหานี้อยู่
roryf

คุณสามารถลองสิ่งเดียวกันโดยไม่ต้องใช้ความสนใจเพียงแค่เนื้อหาบางส่วนลิงก์และ div ใส่สีพื้นหลังบน div เพื่อให้แน่ใจในขณะที่คุณกำลังพัฒนา
roborourke

60
"ลองใช้ค่าทั้งหมดสำหรับคุณสมบัติ Z-INDEX ตั้งแต่ 0 - 999999" ฉันพบว่ามันยากที่จะเชื่อ
sampathsris

4
@Krumia ฉันไม่, เขาสามารถลองค่า z-index ทั้งหมดระหว่าง 0-999999 กับ JS ... แค่ตัวเลือก ...
FullyHumanProgrammer

4
ไม่มีใครพูดถึงdisplay: noneCSS ของเขาจริงเหรอ?
Mark Baijens

คำตอบ:


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
ฉันเชื่อว่าเขาหมายถึงลบ
กาวิน

41
คุณมาเหล่านี้ได้อย่างไร
2540625

หมายเลขใด ๆ สำหรับมือถือ Safari / Chrome / Firefox?
2540625

30
2,147,483,647 = 2^31 - 1สำหรับผู้ที่สนใจ มันเป็น Mersenne ที่สำคัญ
Reggie Pinkham

2
@BehnamMohammadi พฤติกรรมมาตรฐานควรเป็นอย่างไร
Pacerier

306

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

'ดัชนี z'

ค่า : อัตโนมัติ | <integer> | สืบทอด

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

บางประเภทค่าอาจมีค่าจำนวนเต็ม (แสดงโดย <integer>) หรือค่าจำนวนจริง (แสดงโดย <number>) ตัวเลขจริงและจำนวนเต็มถูกระบุในรูปแบบทศนิยมเท่านั้น <integer> ประกอบด้วยตัวเลขหนึ่งหลักขึ้นไป "0" ถึง "9" <ตัวเลข> อาจเป็น <integer> หรืออาจเป็นศูนย์หรือมากกว่านั้นตามด้วยจุด (.) ตามด้วยหนึ่งหรือมากกว่าหนึ่งหลัก ทั้งจำนวนเต็มและจำนวนจริงอาจนำหน้าด้วย "-" หรือ "+" เพื่อระบุสัญลักษณ์ -0 เทียบเท่ากับ 0 และไม่ใช่จำนวนลบ

โปรดทราบว่าคุณสมบัติหลายอย่างที่อนุญาตให้เป็นจำนวนเต็มหรือจำนวนจริงเป็นค่าจริง ๆ จำกัด ค่าให้บางช่วงมักจะเป็นค่าที่ไม่เป็นลบ

ดังนั้นโดยทั่วไปไม่มีข้อ จำกัด สำหรับค่าดัชนี z ในมาตรฐาน CSS แต่ฉันเดาว่าเบราว์เซอร์ส่วนใหญ่ จำกัด ให้ลงนามค่าแบบ 32 บิต (−2147483648 ถึง +2147483647) ในทางปฏิบัติ (64 อาจจะเล็กน้อยด้านบนและมัน ไม่สมเหตุสมผลที่จะใช้อะไรน้อยกว่า 32 บิตในวันนี้)


17
สิ่งสำคัญที่ควรทราบคือค่าดัชนีสูงสุดสูงสุดใน Safari 3 คือ 16777271 สิ่งนี้ได้รับการยกระดับให้เป็นมาตรฐาน 32 บิตใน Safari 4 ดังนั้นจึงเป็นเรื่องที่น่ากังวลหากคุณกำหนดเป้าหมายเบราว์เซอร์รุ่นเก่า นอกจากนี้แม้ใน Safari 3 อะไรก็ตามที่สูงกว่า 16777271 จะได้รับการต่อยอดดังนั้นถ้าคุณใช้ค่าดัชนี z ขนาดใหญ่อย่างไร้เหตุผลเพื่อจัดเรียงองค์ประกอบหลายรายการคุณไม่ควรมีปัญหา (เช่นการตั้งค่าองค์ประกอบหนึ่งเป็นค่าดัชนี z ของ 2147483647 จะตรวจสอบให้แน่ใจว่าองค์ประกอบนั้นอยู่ด้านบนสุดของเบราว์เซอร์ใด ๆ เว้นแต่ว่าจะแข่งขันกับองค์ประกอบอื่นที่มีดัชนี z> 16777271)
Doktor J

6
@DoktorJ ไม่มีใครรู้ว่าทำไมมันถึง 16777271 ดูเหมือนแปลกประหลาดว่าเป็น 56 เกินขีด จำกัด ของจำนวนเต็ม 24 บิตที่ไม่ได้ลงชื่อ
Jools

2
@Jools ตาม webkit dev Eric Seidelนั่นเป็นผลมาจากการใช้ bitfield 24 บิต -log base 2 (lg) = lg(16777271)
Janosch

2
@ Janosch ขออภัยฉันไม่เข้าใจ lg (16777271) มากกว่า 24 ฉันคิดว่าบิตบิต 24 บิตนั้นไม่ใหญ่พอ
Jools

@Janosch, 2 ^ 24 16777216= 16777271จะต้องใช้ 25 บิต
Pacerier

157

การทดสอบของฉันแสดงว่าz-index: 2147483647เป็นค่าสูงสุดทดสอบบน FF 3.0.1 สำหรับ OS X ฉันค้นพบข้อผิดพลาดล้นจำนวนเต็ม: ถ้าคุณพิมพ์z-index: 2147483648(ซึ่งคือ 2147483647 + 1) องค์ประกอบจะอยู่ด้านหลังองค์ประกอบอื่น ๆ ทั้งหมด อย่างน้อยเบราว์เซอร์ก็ไม่ผิดพลาด

และบทเรียนที่ต้องเรียนรู้คือคุณควรระวังการป้อนค่าที่มีขนาดใหญ่เกินไปสำหรับz-indexคุณสมบัติเพราะมันล้อมรอบ


57
เพราะนี่ (2147483647) เป็นค่าบวกที่ใหญ่ที่สุดของจำนวนเต็มที่ลงนามในระบบปฏิบัติการ 32 บิต ...
Badr Hari

4
ฉันไม่คิดว่าตัวเลขจะถูกล้อมรอบหากค่ามากกว่า 2147483647 ... ฉันคิดว่าเป็นไปได้มากที่เบราว์เซอร์จะจัดการกับตัวเลขใด ๆ ที่มากกว่าค่านี้เป็นค่าคงที่เช่น 0
oliver-clare

3
บางทีคุณค่าของคุณอาจกลายเป็นค่าลบ ... ตัวอย่างเช่น -2147483647
Wahyu Fahmy

3
ในเบราว์เซอร์ที่ทันสมัยที่มีมากกว่า 2147483648 จะไม่ย้ายองค์ประกอบที่อยู่เบื้องหลังองค์ประกอบอื่น ๆ
Zach Saucier

25

ค่าต่ำสุดของดัชนี Zคือ0 ; ค่าสูงสุดขึ้นอยู่กับประเภทของเบราว์เซอร์

ป้อนคำอธิบายรูปภาพที่นี่


4
ที่จริงแล้วดัชนี z สามารถเป็นจำนวนลบได้ องค์ประกอบที่มีการจัดตำแหน่งด้วยดัชนี z ลบจะถูกจัดเรียงเป็นอันดับแรกภายในบริบทการซ้อนดังนั้นองค์ประกอบเหล่านั้นจะปรากฏด้านหลังองค์ประกอบอื่น ๆ ทั้งหมด ดูเอกสาร: w3.org/TR/CSS22/visuren.html#z-index
magikMaker

17
ง่ายต่อการคัดลอกและวาง: 2147483647
candlejack

ดัชนีซีอาจเป็นจำนวนลบ แต่สำหรับตัวอย่าง Safari สำหรับ iOS 11.0.2 มีปัญหากับคุณสมบัตินี้
kris_IV

Santosh คุณได้เบอร์เหล่านี้มาจากไหน? คุณคัดลอกจากคำตอบของ Behnam และเพิ่ม IE7 และ IE8 หรือไม่?
CPHPython

21

ขึ้นอยู่กับเบราว์เซอร์ (แม้ว่าเบราว์เซอร์ทุกเวอร์ชันควรมีขนาดสูงสุดที่ 2147483638) เช่นเดียวกับปฏิกิริยาของเบราว์เซอร์เมื่อเกินค่าสูงสุด

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



21

จากประสบการณ์ฉันคิดว่าค่าสูงสุดที่ถูกต้องz-indexคือ 2147483638


7
ดูเหมือนว่าคุณผิด ตามการทดสอบที่ทำในปี 2009 โดย Eric Poidokas ค่าสูงสุด z-index (โดยไม่มีความเสี่ยงของการปล่อยองค์ประกอบบนล้น) คือ 2147483647
มาร์ติน

14

ดัชนี Z ใช้ได้กับองค์ประกอบที่มีposition: relative;หรือposition: absolute;ใช้กับพวกเขาเท่านั้น หากนั่นไม่ใช่ปัญหาเราจะต้องเห็นหน้าตัวอย่างเพื่อเป็นประโยชน์มากขึ้น

แก้ไข: แพทย์ที่ดีได้ใส่คำอธิบายอย่างเต็มที่แล้ว แต่ฉบับย่อก็คือขั้นต่ำคือ 0 เพราะมันไม่สามารถเป็นจำนวนลบและจำนวนสูงสุด - ดีคุณจะไม่ต้องไปมากกว่า 10 สำหรับการออกแบบส่วนใหญ่


5
ฉันใช้ "z-index: -1;" ก่อนที่จะ "จม" องค์ประกอบดังนั้นจึงไม่สามารถคลิกได้ มันอาจไม่ใช่โซลูชันยอดนิยม แต่ใช้งานได้ : P
Ty

17
ฉันรู้ว่ามันช้าไปหน่อย แต่ก็ใช้ได้กับตำแหน่ง: คงที่เช่นกัน
TCCV

7
AFAIK คุณสามารถมีจำนวนเต็มลบสำหรับค่าดัชนี z
d -_- b

ฉันสงสัยว่าทำไมฉันระบุ z-index: 1,000 แต่เบราว์เซอร์บอกฉันว่า z-index ที่แท้จริงคือ auto ตำแหน่งทำเคล็ดลับ
Will Wu

6

ฉันพบว่าบ่อยครั้งหาก z-index ไม่ทำงานเนื่องจากพ่อแม่ / พี่น้องไม่มีดัชนี z ที่ระบุ

ดังนั้นถ้าคุณมี:

<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 วางไว้ในกองอิสระตอนนี้จะอยู่ในกองซ้อนเดียวกัน และจะดัชนี z อย่างถูกต้อง

สิ่งนี้มีคำอธิบายที่เป็นประโยชน์และมีมนุษยธรรมอย่างเป็นธรรม: http://foohack.com/2007/10/top-5-css-mistakes/  


4
ในขณะที่เราอยู่ในหัวข้อปัญหาที่พบบ่อยอื่นไม่ได้มีposition: relative;หรือสิ่งที่ชอบ
Ryan Taylor

1
ที่จริงแล้วเพียงแค่อ่านโพสต์เดิมอีกครั้ง คุณพูดถูกนี่อาจเป็นปัญหาของเขา
Ryan Taylor

5

ผู้ใช้ข้างต้นกล่าวว่า "ดีคุณจะไม่ต้องสูงกว่า 10 สำหรับการออกแบบส่วนใหญ่"

คุณอาจต้องการดัชนี z 0-1 หรือดัชนี z 0-10000 ทั้งนี้ขึ้นอยู่กับโครงการของคุณ คุณมักจะต้องเล่นเป็นตัวเลขที่สูงกว่า ... โดยเฉพาะอย่างยิ่งถ้าคุณทำงานกับผู้ชม Lightbox (9999 ดูเหมือนว่าจะเป็นมาตรฐานและถ้าคุณต้องการดัชนี z ของพวกเขาด้านบนคุณจะต้องเกิน!)


0

ในขณะที่INT_MAXน่าจะเป็นทางออกที่ปลอดภัยที่สุด WebKit ใช้คู่ภายในและจึงช่วยให้ตัวเลขขนาดใหญ่มาก (เพื่อความแม่นยำแน่นอน) LLONG_MAXเช่นทำงานได้ดี (อย่างน้อยใน Chromium 64 บิตและ WebkitGTK) แต่จะถูกปัดเศษเป็น 9223372036854776000

(แม้ว่าคุณควรพิจารณาอย่างรอบคอบว่าคุณจริงๆจริงๆต้องนี้ดัชนี Z จำนวนมาก ... )

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.