Z- 색인의 최소값과 최대 값은?


518

내 HTML 페이지에 div가 있습니다. 조건에 따라이 div를 표시하고 있지만 div는 마우스 커서를 가리키는 HTML 요소 뒤에 표시됩니다.

z-index의 모든 값을 0-999999로 시도했습니다. 왜 이런 일이 발생하는지 말해 줄 수 있습니까?

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>

div를 표시하고 숨기고 있습니다. .divClass<asp:hyperlink>jQuery를 사용하여 onclick으로 .


문제는 아마도 z-index와 관련이 없을 것입니다. 동작을 보여주는 HTML 및 CSS의 예를 들어 줄 수 있습니까? 어떤 브라우저에서이 문제가 발생합니까?
roryf

테이블, 일부 내용, 링크 및 div를 사용하지 않고 동일한 것을 시도해 볼 수 있습니다. 또한 개발하는 동안 확실하게 div에 배경색을 넣으십시오.
roborourke

60
"Z-INDEX 속성의 모든 값을 0-999999로 시도했습니다." 나는 그것을 믿기가 어렵다.
sampathsris

4
@Krumia 나는하지 않습니다, 그는 JS와 0-999999 사이의 모든 z- 색인 값을 시도 할 수 있습니다 ... 그냥 옵션 ...
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
나는 그가 부정적인 것을 의미한다고 생각합니다.
Gavin

41
어떻게 이런 일을 했습니까?
2540625

모바일 Safari / Chrome / Firefox에 대한 숫자가 있습니까?
2540625

30
관심있는 분들을 위해 2,147,483,647 = 2^31 - 1. 메르 센 총리입니다.
레지 핑크 햄

2
@BehnamMohammadi, 표준 행동은 무엇입니까?
Pacerier

306

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

'Z- 색인'

: 자동 | <정수> | 상속

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

일부 값 유형에는 정수 값 (<정수>로 표시) 또는 실수 값 (<번호>로 표시)이있을 수 있습니다. 실수와 정수는 십진 표기법으로 만 지정됩니다. <정수>는 하나 이상의 숫자 "0"~ ​​"9"로 구성됩니다. <숫자>는 <정수>이거나 0 개 이상의 숫자 다음에 점 (.)과 하나 이상의 숫자가 될 수 있습니다. 부호를 나타 내기 위해 정수와 실수 모두 "-"또는 "+"가 앞에 올 수 있습니다. -0은 0과 같으며 음수가 아닙니다.

정수 또는 실수를 값으로 허용하는 많은 속성은 실제로 값을 특정 범위, 종종 음이 아닌 값으로 제한합니다.

따라서 기본적으로 CSS 표준에는 z-index 값에 대한 제한이 없지만 대부분의 브라우저는 실제로 부호있는 32 비트 값 (−2147483648 ~ +2147483647)으로 제한합니다 (64는 약간 떨어짐). 요즘 32 비트 미만의 것을 사용하는 것은 의미가 없습니다.)


17
Safari 3의 최대 z- 색인 값은 16777271입니다. 이는 Safari 4의 32 비트 표준으로 향상되었으므로 이전 브라우저를 대상으로하는 경우에만 문제가됩니다. 또한 Safari 3에서도 16777271 이상의 모든 항목이 캡핑되므로 엄청나게 큰 z 인덱스 값을 사용하여 여러 요소를 주문하지 않는 한 문제가 없어야합니다 (예 : 하나의 요소를 z 인덱스 값 2147483647로 설정) z-index> 16777271을 갖는 다른 요소와 경쟁하지 않는 한 요소가 모든 브라우저에서 최상위에 유지되도록합니다.)
Doktor J

6
@DoktorJ 왜 16777271인지 아십니까? 24 비트 부호없는 정수의 한계보다 56 이상인 것이 기괴한 것처럼 보입니다.
Jools

2
웹킷 개발자 에릭 세이 델 (Eric Seidel)에 따르면 @Jools 는 24 비트 비트 필드를 사용한 결과였다.log base 2 (lg) = lg(16777271)
Janosch

2
@Janosch 죄송합니다. 이해가되지 않습니다. lg (16777271)는 24보다 큽니다. 24 비트 비트 필드가 충분하지 않다고 생각했을 것입니다.
Jools

@ 자노 쉬, 2 ^ 24 = 16777216. 16777271따라서 25 비트가 필요합니다.
Pacerier

157

내 테스트는 z-index: 2147483647OS X 용 FF 3.0.1에서 테스트 한 최대 값 임을 보여줍니다 . 정수 오버플로 버그를 발견했습니다. 입력하면 z-index: 2147483648(2147483647 + 1) 요소는 다른 모든 요소 뒤에 있습니다. 적어도 브라우저는 충돌하지 않습니다.

그리고 배울 점은 z-index속성이 너무 큰 값을 입력하면주의해야한다는 점 입니다.


57
이것이 32 비트 운영 체제에서 부호있는 정수의 최대 양수 값이므로 (2147483647) ...
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
촛대

Z- 색인은 음수가 될 수 있지만 iOS 11.0.2 용 Safari의 경우이 속성에 문제가 있습니다.
kris_IV

산토스,이 번호는 어디서 났어? Behnam의 답변에서 복사하여 IE7 및 IE8을 추가 했습니까?
CPHPython

21

최대 값을 초과 할 때 브라우저의 반응과 마찬가지로 브라우저에 따라 다릅니다 (모든 브라우저의 최신 버전은 2147483638으로 최대 값을 초과해야 함).

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



21

경험 z-index이 없으면 올바른 최대 값 은 2147483638입니다.


7
당신이 틀린 것 같습니다. Eric Poidokas가 2009 년에 수행 한 테스트에 따르면, 최대 z- 색인 값 (오버플로로 인해 요소가 떨어질 위험이 없음)은 2147483647입니다.
Martin

14

Z- 색인은 해당 요소에 적용 position: relative;되거나 position: absolute;적용된 요소에 대해서만 작동 합니다. 이것이 문제가 아니라면 더 유용한 예제 페이지가 필요합니다.

편집 : 좋은 의사는 이미 최대한의 설명을 넣었지만 빠른 버전은 최소값이 음수와 최대 값이 될 수 없기 때문에 최소값은 0이라는 것입니다. 대부분의 디자인에서 실제로 10 이상으로 올라갈 필요는 없습니다.


5
"z-index : -1;"을 사용했습니다. 클릭 할 수 없도록 요소를 "싱크"하기 전에 아마도 인기있는 솔루션은 아니지만 작동합니다. : P
Ty.

17
나는 이것이 조금 늦다는 것을 알고 있지만 position : fixed에서도 작동합니다.
TCCV

7
AFAIK, z- 인덱스 값에 음의 정수를 사용할 수 있습니다.
d -_- b

z-index : 1000을 지정하는 이유가 궁금하지만 브라우저에서 실제 z-index가 자동이라고 나에게 말했습니다. 위치는 트릭을 수행합니다.
Will Wu

6

부모 / 형제에 지정된 z- 색인이 없기 때문에 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>

# 1을 z-index 0으로 설정하면 z-index를 사용하는 형제가 독립 스택에 넣은 형제는 이제 동일한 스택에 있습니다. 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 만 필요할 수 있습니다. 특히 라이트 박스 뷰어를 사용하는 경우 (9999가 표준 인 것으로 보이며 z- 색인을 위로 표시하려면 해당 숫자를 초과해야합니다.)


0

하지만 INT_MAX아마도 가장 안전한 내기이다, 웹킷은 분명히 내부적으로 복식을 사용하여 허용 매우 큰 (특정 정밀도) 숫자를.LLONG_MAX예를 들어 (64 비트 Chromium 및 WebkitGTK에서 이상) 제대로 작동하지만 9223372036854776000으로 반올림됩니다.

(여러분이 정말로 많은지 신중히 고려해야하지만, 이 많은 z 지수가 정말로 필요합니다…).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.