定位

定位用来控制元素的位置

定位的关键字是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的更多相关文章

  1. 快捷定位目录 z武器

    z的源码在这里:https://github.com/rupa/z/blob/master/z.sh 1.把源码复制到你的用户目录下的z.sh文件, 2.然后用vim打开.bashrc这个目录,在最后 ...

  2. 前端2 — CSS — 更新完毕

    1.CSS是什么? 指:Cascading Style Sheet  --- 层叠样式表 CSS 即:美化网页( 在HTML不是说过W3C规定网页为三种标准嘛,结构层HTML已经玩了,而这个CSS就是 ...

  3. CSS定位(postion)和移动(float)

    5.定位和移动:Positioning(定位)CSS定位属性允许你为一个元素定位.它也可以将一个元素放在另一个元素后面,并指定一个元素的内容太大时,应该发生什么. 元素可以使用的顶部,底部,左侧和右侧 ...

  4. CSS Positioning(定位)

    Positioning(定位) CSS定位属性允许你为一个元素定位.它也可以将一个元素放在另一个元素后面,并指定一个元素的内容太大时,应该发生什么. 元素可以使用的顶部,底部,左侧和右侧属性定位.然而 ...

  5. css显示display、可见性visibility、定位position、对齐

    隐藏一个元素可以通过把display属性设置为"none",或把visibility属性设置为"hidden",但是这两种方法会产生不同的结果. display ...

  6. CSS 基础 例子 定位及z-index

    position 属性指定了元素的定位类型. position 属性的四个值: static    不设置默认为该值,即没有定位,元素出现在正常的流中.不能使用top,bottom,left,righ ...

  7. CSS Position(定位)

    CSS Position(定位) 一.CSS Position(定位) position 属性指定了元素的定位类型. position 属性的五个值: static relative fixed ab ...

  8. css总结1:position定位:absolute/relative/fixed

    1 [Positioning(定位)] Positioning作用:指定了元素的定位类型.position包括四个值:static,relative,fixed,absolute. css定位解析:元 ...

  9. CSS:CSS Positioning(定位)

    ylbtech-CSS:CSS Positioning(定位) 1.返回顶部 1. CSS Positioning(定位) position 属性指定了元素的定位类型. position 属性的四个值 ...

  10. 教你玩转CSS Position(定位)

    CSS Position(定位) position 属性指定了元素的定位类型. position 属性的五个值: static relative fixed absolute sticky 元素可以使 ...

随机推荐

  1. IIS配置MP3/MP4/OGG/flv等资源文件访问

    配置过程参考:http://www.cnblogs.com/EasonJim/p/4752399.html 以下包含了mp4的mime类型: 323 text/h323 acx application ...

  2. html5+css+div随时笔记

    首先给头部文件引用格式 <link href="<%=basePath%>temp/public/css/style.css" rel="stylesh ...

  3. PHPstorm同步文件时与ftp断开连接

    一用PHPstorm同步对比服务器端和本地文件的差异时,一会就断开ftp再也连不上了,弄了好久终于找到原因了,好像这个同步会频繁请求建立连接,服务器本地安全策略屏蔽了ip,还是下载后再做修改或者直接在 ...

  4. 分布式开放消息系统(RocketMQ)的原理与实践

    分布式消息系统作为实现分布式系统可扩展.可伸缩性的关键组件,需要具有高吞吐量.高可用等特点.而谈到消息系统的设计,就回避不了两个问题: 消息的顺序问题 消息的重复问题 RocketMQ作为阿里开源的一 ...

  5. Redis Cluster 分区实现原理

    Redis Cluster本身提供了自动将数据分散到Redis Cluster不同节点的能力,分区实现的关键点问题包括:如何将数据自动地打散到不同的节点,使得不同节点的存储数据相对均匀:如何保证客户端 ...

  6. C#基础:飞行棋游戏

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  7. IDEA中maven搭建Spring+SpringMVC+mybatis项目

    一.介绍 使用IDEA搭建maven web项目,整合框架Spring+SpringMVC+mybatis 项目结构图:

  8. 【CoreAnimation】1 到 5

    学习资源来自:图层树 . Quartz 2D Core Animation 复合引擎,职责为尽可能快地组合屏幕上不同的可视内容.这些内容被分解成多个独立的图层,存储在 图层树 的体系中.于是这个树形成 ...

  9. CsvHelper支持List<T>

      /// <summary> /// Csv帮助类 /// </summary> public class CsvHelper { /// <summary> / ...

  10. TF-IDF算法学习报告

    TF-IDF是一种统计方法,这个算法在我们项目提取关键词的模块需要被用到,TF-IDF算法是用来估计 一个词汇对于一个文件集中一份文件的重要程度.从算法的定义中就可以看到,这个算法的有效实现是依靠 一 ...