你所不知道的z-index的用法
在开始今天的内容之前,先让我们来看下面一段代码:
<style type="text/css"><br /> #div1,#div2{<br /> width:200px;<br /> height:200px;<br /> background-color:red;<br /> position: relative;<br /> z-index:1;<br /> }<br /> #div2{<br /> background-color:green;<br /> z-index:0;<br /> }<br /> #div1_1,#div2_1{<br /> width:100px;<br /> height:100px;<br /> background-color:black;<br /> }<br /> #div1_1{<br /> position:relative;<br /> z-index:-100;<br /> left:80px;<br /> top:140px;<br /> }<br /> #div2_1{<br /> background-color:yellow;<br /> z-index:999;<br /> position: relative;<br /> left:160px;<br /> top:-50px;<br /> }<br /><br /></style>
<br><div id="div1"> <br> 我是div1<br> <div id="div1_1"> <br> 我是div1_1<br> </div> <br> </div><br><div id="div2"> <br> 我是div2<br> <div id="div2_1"> <br> 我是div2_1<br> </div> <br> </div><br>
'
???excuse me?为什么div2_1的z-index值都999了还是比div1的元素层级低?div1_1的z-index值都为-100了还比div1高呢?不要着急,且听我慢慢道来。
首先我们对一个东西不熟悉的时候要先弄懂三个东西:1.这个东西是什么?2.有什么用?3.怎么用?
我们下面也是按这三个步骤来讲解这个z-index属性。首先第一,二点,这个东西是什么?z-index其实是css中的一个普通属性,主要用于设置元素的堆叠顺序,直白点就是你的网页如果有三个div重合在一起,需要按照一定顺序从底层显示到最上层,你该怎么办,因为在一般的网页开发中我们是二维的,css引入这个属性也是为了帮助我们更好的布局。
其次我们开始看看这个东西怎么用,下面我先给大家引入一些概念性的东西:
1.z-indeex属性设置元素的堆叠顺序,拥有更高的堆叠顺序的元素总是会处于堆叠顺序较低的元素前面
2.对于同级元素,默认或position:STATIC情况下文档流后面的元素会覆盖前面的
3.对于同级元素,position不为static且z-index存在的情况下z-index大的元素会覆盖z-index小的元素,及z-index越大优先级越高
4.ie6/7下position不为static,且z-index不存在是z-index为0,除此之外的浏览器z-index为auto;
5.z-index为auto的元素不参与层级关系的比较,由向上遍历至此z-index不为auto的元素来参与比较
注意:如果你设置了position:static和不设置position的元素是一样的,对堆叠层级没有影响(后面例子便不再说明了,后面的position默认无static的情况)
下面我以几个实例来说明:
1.没有z-index和 position参与时元素的堆叠顺序:
上面两个div的堆叠法则就是后面的堆叠层级是比前面高的,就是说如果你用负margin将div2移到div1上,重合的部分是显示的 div2而不是div1。然后有同学就会问了,那我在div2后面再加一个div3呢,这时不管你后面还有多少个div,层级都和div2相同,不会再比div2高了
2.在有position参与但无z-index参与的情况
eg:
<style type="text/css"><br /> /*定位规则,如果加position堆叠顺序优先,所以A此时变在B上面*/<br /> #a,#b{<br /> width:100px;<br /> height:100px;<br /> background-color:red;<br /> }<br /> #b{<br /> background-color:green;<br /> margin-top:-20px;<br /> margin-left:20px;<br /> }<br /> #a{<br /> position:relative;<br /> }<br /><br /></style>
<br><div id="a"> <br> 我是A<br> </div><br><div id="b"> <br> 我是B<br> </div><br><br>然后你看到的是这样的情况:
这说明啥呢,虽然b元素在a的后面,但是a加了position之后,他的堆叠层级就变高了,跑到了b的上面<br>,所以我们利用这个规则在无z-index参与的情况下也可以实现三层堆叠,比如这样:
<style type="text/css"><br /> /*定位规则,在没有z-index干扰的情况下也可以三个div也可以做出堆叠效果哦*/<br /> #a,#b{<br /> width:100px;<br /> height:100px;<br /> background-color:red;<br /> }<br /> #b{<br /> background-color:green;<br /> margin-top:-20px;<br /> margin-left:20px;<br /> }<br /> #a_1{<br /> width:50px;<br /> height:50px;<br /> background-color:blue;<br /> position:relative;<br /> left:80px;<br /> top:50px;<br /> }<br /><br /> </style><br><br><br><div id="a"> <br> 我是A<br> <div id="a_1"> <br> 我是A的子DIV<br> </div> <br> </div><br><div id="b"> <br> 我是B<br> </div><br>
3.有z-index参与的情况:<br>1.简单的堆叠:<br>#div1{<br>position:relative;<br>z-index:1;<br>}
#div2{<br>position:relative;<br><br>}
#div1{<br>position:relative;<br>z-index:0;<br>}
<div id="div1"></div><br><div id="div2">/div><br><div id="div3"></div> <br>此时的层级顺序是,div1在最顶层,div2和div3均在第二层也就是最后一层。需要大家注意的一点,在position有值时,设置z-index为0和不设z-index是一样的。<br><br>2.相对复杂的堆叠(z-index的从父原则):<br> 意思就是子元素首先要看看父元素有无z-index,就像最开始的例子,当两个父元素div1的z-index为1,div2的z-index为0时,div1的所有的子元素及自己的层级就会比div2及其子元素高,这也解释了为什么div2_1的z-index值设为999了都还是在div1的下面。讲到这,上述例子还有一个问题,div1_1我都设了z-index为-100了,为什么还是比div1高呢。有些同学会想,我就是想让背景黑色div1_1在父元素div1的下边怎么办呢,所以这里还有一个原则:当父元素有设置z-index时,那么他的子元素的层级一定会比他高,所以如果你想让一个子元素的层级在父元素之下,你一直设置子元素的z-index,都设置成了z-index 1000了都,没有效果,那么不妨看看父元素是否也被设置了z-index吧! <p> 最后再强调一下:z-index是允许为负的 ,其次z-index的值应该是一个整数,不带px,很多新手写宽高写惯了,顺便就把z-index的值带了px.其次,在使用z-index的时候,一定要配合position使用,不管这个position 的值时fixed,absolute还是relative,但在值为static和不设position的层级是一致的。</p> <p> 总结一下,上面的例子好像很乱,实际情况真的不知道怎么使用才好。个人经验来看,首先看有无position,无position按先后顺序来看层级。有position,再看看是否有z-index,在父元素的子元素设置z-index的值时,一定要注意父元素是否设置了z-index,因为父元素会影响子元素的层级,这一点很重要,也是我们最最经常犯的错误。如果当你一个元素的z-index值设置最大或最小都没有效果时,不妨看看这是否你对z-index的从父原则没有理解透彻吧!最后再说点和本文无关的,css样式有很多属性都具有继承性,比如color,我们需要对其慢慢的了解,建议有时间大家可以去看看有关于css继承性方面的知识。</p> <p> </p> <p> </p> <pre class="brush:php;toolbar:false"><br><br>

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds











WebDevelopmentReliesOnHTML, CSS, etjavascript: 1) HTMLSTRUCTURESCONTENT, 2) CSSSTYLESIT, et3) JavascriptAdddsInterActivity, Forming TheasisofmodernweBEBExperiences.

HTML définit la structure Web, CSS est responsable du style et de la mise en page, et JavaScript donne une interaction dynamique. Les trois exercent leurs fonctions dans le développement Web et construisent conjointement un site Web coloré.

HTML, CSS et JavaScript sont les trois piliers du développement Web. 1. HTML définit la structure de la page Web et utilise des balises telles que, etc. 2. CSS contrôle le style de page Web, en utilisant des sélecteurs et des attributs tels que la couleur, la taille de la police, etc. 3. JavaScript réalise les effets dynamiques et l'interaction, par la surveillance des événements et les opérations DOM.

Les rôles de HTML, CSS et JavaScript dans le développement Web sont: 1. HTML définit la structure de la page Web, 2. CSS contrôle le style de page Web, et 3. JavaScript ajoute un comportement dynamique. Ensemble, ils construisent le cadre, l'esthétique et l'interactivité des sites Web modernes.

L'avenir de HTML est plein de possibilités infinies. 1) Les nouvelles fonctionnalités et normes comprendront plus de balises sémantiques et la popularité des composants Web. 2) La tendance de la conception Web continuera de se développer vers une conception réactive et accessible. 3) L'optimisation des performances améliorera l'expérience utilisateur grâce à des technologies de chargement d'image réactives et de chargement paresseux.

Les tendances futures de HTML sont la sémantique et les composants Web, les tendances futures de CSS sont CSS-in-JS et CSShoudini, et les tendances futures de JavaScript sont WebAssembly et sans serveur. 1. La sémantique HTML améliore l'accessibilité et les effets de référencement, et les composants Web améliorent l'efficacité du développement, mais l'attention doit être accordée à la compatibilité du navigateur. 2. CSS-in-JS améliore la flexibilité de gestion du style mais peut augmenter la taille du fichier. CSShoudini permet le fonctionnement direct du rendu CSS. 3.WeBassembly optimise les performances de l'application du navigateur mais a une courbe d'apprentissage abrupte, et sans serveur simplifie le développement mais nécessite une optimisation des problèmes de démarrage à froid.

Les rôles de HTML, CSS et JavaScript dans le développement Web sont: HTML est responsable de la structure du contenu, CSS est responsable du style et JavaScript est responsable du comportement dynamique. 1. HTML définit la structure et le contenu de la page Web via des balises pour assurer la sémantique. 2. CSS contrôle le style de page Web via des sélecteurs et des attributs pour le rendre beau et facile à lire. 3. JavaScript contrôle le comportement de la page Web via les scripts pour atteindre des fonctions dynamiques et interactives.

HTML est la pierre angulaire de la construction de la structure des pages Web. 1. HTML définit la structure et la sémantique du contenu et les utilisations, etc. Tags. 2. Fournir des marqueurs sémantiques, tels que, etc., pour améliorer l'effet SEO. 3. Pour réaliser l'interaction de l'utilisateur via des balises, faites attention à la vérification de la forme. 4. Utilisez des éléments avancés tels que, combinés avec JavaScript pour obtenir des effets dynamiques. 5. Les erreurs courantes incluent des étiquettes non clôturées et des valeurs d'attribut non déposées et des outils de vérification sont nécessaires. 6. Les stratégies d'optimisation comprennent la réduction des demandes HTTP, la compression du HTML, l'utilisation de balises sémantiques, etc.
