定位以及z-index
定位
定位用来控制元素的位置
定位的关键字是position,position有4个值,分别是relative,absolute,static,fixed当元素定位以后,元素有4个值可以用,分别是left,right,top,bottom.
我用以下几个例子来演示absolute绝对定位和relative相对定位
1.我定义了一个main里面套着三个div,部分代码如下
#main{
width: 800px;
height: 400px;
background: #ccc;
}
#main div{
width: 200px;
height: 100px;
display: inline-block;
}
#div1{
background: red;
}
#div2{
background: blue;
position: relative;
left: 50px;
top: 50px;
}
#div3{
background: green;
}
<body>
<div id="main">
<div id="div1">a</div>
<div id="div2">b</div>
<div id="div3">c</div>
</div>
</body>

2.然后我给div2加了定位,如下
#div2{
background: blue;
position: relative;
left: 50px;
top: 50px;
}

由此可以看出,相对定位relative相对于元素初始位置,并且空间不释放
3.在1的基础上增加div2样式如下
#div2{
background: blue;
position: absolute;
left: 50px;
top: 50px;
}

由此可以看出,absolute相对于body定位,absolute空间释放
同样的 ,我将main用margin-left和margin-top让它向右下方蹿100px,而不用定位,然后将b做absolute定位,代码如下
#main{
width: 800px;
height: 400px;
background: #ccc;
margin-left: 100px;
margin-top: 100px;
}
#main div{
width: 200px;
height: 100px;
display: inline-block;
}
#div1{
background: red;
}
#div2{
background: blue;
position: absolute;
left: 50px;
top: 50px;
}
#div3{
background: green;
}

此时可以看出absolute还是相对于body,因为我没有给main定位
4.在1的基础上增加main样式如下
#main{
width: 800px;
height: 400px;
background: #ccc;
position: relative;
left: 50px;
top: 50px;
}

由此可得,当给main定位并且加参数时,会看到main带着三个div往下窜
5.在4的基础上,给div2添加样式,如下
#main{
width: 800px;
height: 400px;
background: #ccc;
position: relative;
left: 50px;
top: 50px;
}
#div2{
background: blue;
position: absolute;
left: 50px;
top: 50px;
}

空间还会释放,但b不再相对于body,而是相对于main.也就是说,某一个子元素定位并且是绝对定位,这个时候它相对于最近的已定位的祖先元素.
Static静态定位是默认值,元素出现在正常的流,没有left,right,top,bottom这四个值.
Fixed和absolute的唯一区别是:absolute是根据最近的定位的祖先元素确定自己的位置,而fixed永远根据浏览器确定位置,即使窗口为滚动窗口也不会移动.不占据空间.
z-index
#main{
width: 800px;
height: 400px;
background: #ccc;
position: relative;
left: 100px;
top: 100px;
}
#main div{
width: 200px;
height: 100px;
display: inline-block;
}
#div1{
background: red;
}
#div2{
background: blue;
position: absolute;
left: 50px;
top: 50px;
}
#div3{
background: green;
}

这段代码以及运行后如上图所示,但是现在我需要a在上面不被b覆盖,我需要改变它的层叠关系,这时候用到了z-index,它用控制定位元素的层级关系.z-index我将它翻译成z轴的索引.当我用z-index的时候,必须给当前的加定位,简单来说就是让谁在上面,就给谁定位然后加z-index.定位元素默认z-index=0.代码示例如下
#main{
width: 800px;
height: 400px;
background: #ccc;
position: relative;
left: 100px;
top: 100px;
}
#main div{
width: 200px;
height: 100px;
display: inline-block;
}
#div1{
background: red;
position: absolute;
left: 0;
top: 0;
z-index: 1;
}
#div2{
background: blue;
position: absolute;
left: 50px;
top: 50px;
}
#div3{
background: green;
}

a看起来没动,但z-index值改变,绝对定位元素空间释放,所以c跑到a下面去了.
定位以及z-index的更多相关文章
- 快捷定位目录 z武器
z的源码在这里:https://github.com/rupa/z/blob/master/z.sh 1.把源码复制到你的用户目录下的z.sh文件, 2.然后用vim打开.bashrc这个目录,在最后 ...
- 前端2 — CSS — 更新完毕
1.CSS是什么? 指:Cascading Style Sheet --- 层叠样式表 CSS 即:美化网页( 在HTML不是说过W3C规定网页为三种标准嘛,结构层HTML已经玩了,而这个CSS就是 ...
- CSS定位(postion)和移动(float)
5.定位和移动:Positioning(定位)CSS定位属性允许你为一个元素定位.它也可以将一个元素放在另一个元素后面,并指定一个元素的内容太大时,应该发生什么. 元素可以使用的顶部,底部,左侧和右侧 ...
- CSS Positioning(定位)
Positioning(定位) CSS定位属性允许你为一个元素定位.它也可以将一个元素放在另一个元素后面,并指定一个元素的内容太大时,应该发生什么. 元素可以使用的顶部,底部,左侧和右侧属性定位.然而 ...
- css显示display、可见性visibility、定位position、对齐
隐藏一个元素可以通过把display属性设置为"none",或把visibility属性设置为"hidden",但是这两种方法会产生不同的结果. display ...
- CSS 基础 例子 定位及z-index
position 属性指定了元素的定位类型. position 属性的四个值: static 不设置默认为该值,即没有定位,元素出现在正常的流中.不能使用top,bottom,left,righ ...
- CSS Position(定位)
CSS Position(定位) 一.CSS Position(定位) position 属性指定了元素的定位类型. position 属性的五个值: static relative fixed ab ...
- css总结1:position定位:absolute/relative/fixed
1 [Positioning(定位)] Positioning作用:指定了元素的定位类型.position包括四个值:static,relative,fixed,absolute. css定位解析:元 ...
- CSS:CSS Positioning(定位)
ylbtech-CSS:CSS Positioning(定位) 1.返回顶部 1. CSS Positioning(定位) position 属性指定了元素的定位类型. position 属性的四个值 ...
- 教你玩转CSS Position(定位)
CSS Position(定位) position 属性指定了元素的定位类型. position 属性的五个值: static relative fixed absolute sticky 元素可以使 ...
随机推荐
- [信安presentation]Fight against GFW
Section1:加密 加密算法分为:对称加密算法.非对称加密算法.Hash 1.1对称加密算法 加密解密使用相同的密钥 eg:DES,AES,RC4,RC5,Triple DES 缺点:1.因为加密 ...
- [半转]1px边框 移动端
半转的意思是借鉴参考,搬砖,加了一些自己的想法. 在移动端里,因为存在2倍像素的问题,所以很多时候,移动端上的1px边框并不是意义上的.从下图红色框看到dpr:2.0 ,表示1px等于2倍的物理像素. ...
- Material Design
4.适应性设计 底层设计系统包括了交互和空间两部分.每一个设备都能反映出同一底层系统的不同侧面.每一设备的界面都会按照大小和交互进行调整.只有颜色,图标,层次结构和空间关系保持不变. 它不仅仅为了好看 ...
- 页面测试点testpoint
页面测试点整理(非逻辑测试点) 由于自己一年来一直在做页面测试,也看了很多测试理论的书和方法,但是方法并非也无法照搬,此处总结自己工作以来通过各种坑摸出来的一些方法点,希望一边靠上经典测试理论,一边形 ...
- 原生javascript 实现 animate
原生javascript 实现 animate //animate function getstyle(obj,name){ if(obj.currentStyle){ return obj.curr ...
- Spring学习记录1--@Transactional Propagation
起因 学习Spring的时候就知道aop有一个应用是声明式注解..反正往Service上一丢@Transactional就完事了..不用自己去开启hibernate的session,很简单. 但是@T ...
- ASP.MVC 基于AuthorizeAttribute权限设计案例
ASP.MVC上实现权限控制的方法很多,比如使用AuthorizeAttribute这个特性 1.创建自定义特性用于权限验证 public class AuthorizeDiy : Authorize ...
- 解决Myeclipse PermGen space问题
myeclipse配置web服务器配置 Window—Preferences—Myeclipse—Servers—tomcat JDK的Optional Java VM arguments配置为:-X ...
- 小小C程序(九九乘法表)
用一个简单的嵌套循环实现: #include <stdio.h> int main() { int i,j; ,j=i;i<=&&j<=;) { if (i== ...
- NOI2016滚粗记
首先明确,博主是个渣渣... 7月19日 出发啦,准备去哈尔滨,临走时爸爸迟迟不肯离去站台口,凝望着我,心理很感动..内心的压力瞬间增大2333,附候车室图片.. 在火车上怎么也睡不着2333 7月2 ...