position属性详解

  • 文档流

1、html中的布局方式分为三种:

标准流(顺序布局):因为html中的元素大体可以分为两大类(a:块级元素:div .H1-H6. table表格  有序级无序列表   P段落;b: 内联元素:a  span img input)

两者之间的区别:a.块元素总是独占一行的,而内联元素是占相邻元素的同一行,当内容超出了宽度的时候才会被挤到下一行

用代码验证标准流的特性:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>标准流</title> <style>
.test{
width: 100px;
height: 100px;
background: red;
border:1px solid #FFF;
}
</style>
</head>
<body>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<span>文字1</span>
<span>文字2</span>
<span>文字3</span> </body>
</html>

效果如图

说明:因为 div为块级元素,所以每一个占据一行,要想占同一行,可用float,  span为内联元素,全部占据同一行

2、浮动:以后添加

3、定位布局方式:定位布局是为了让元素脱离正常的标准流布局,决定了以什么 方式进行定位。

  • static:是默认值,元素按照正常的标准流进行定位
  • position-relative:仍然是出于正常的文档流中,但是我们可以通过top  left right bottom来改变元素的位置

  • 说明:红色和蓝色两个区域本来是同样大小的结果蓝色都使用了相对定位的时候,蓝色的覆盖在了红色的上面,这说明后定义的relative >  先定义的
  • 问题2:在相对定位中是如何通过top right left bottom来中控制元素的移动的
  • <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>relative</title>
    <style>
    .test1{
    width: 100px;
    height: 100px;
    background: red;
    position: relative;
    left: 10px; //当改变这里的参数会发现(top, left)是以左上角为原点以第四现象为正轴移动
    bottom:50px; //(right, bottom)是以左上角为原点第二现象为正轴移动
  • </style></head><body><div class="test1"></div></body></html>
  • 讨论:改变top left bottom right各有什么变化:这里就不一一给出结果了,经过测试可以发现:left  top:是以左上角的顶点为原点,第四象限的方向为正方向;right  top:是以右上角的顶点为原点,第三象限的方向为正方向;left bottom:是以左下角的方向为原点,第一象限的方向为正方向;right  bottom:是以右下角的方向为原点,第二象限的方向为正方向。
  • position-absolute:当这个配合 top left 等属性的时候将会脱离正常的文档流,并且在网页的任何时候都是可以定位的,同样是后写的元素会覆盖先写到元素。
  • <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>relative</title> <style>
    *{
    margin: 0;
    padding: 0;
    }
    .test{
    width: 100px;
    height: 100px;
    background: red;
    position: absolute; } </style>
    </head>
    <body> <div class="test"></div>
    </body>
    </html>

    我们通过控制台可以看到,原来设定的宽*高=100*100  而现在元素已经没有了高度,说明此时设定了绝对定位以后,元素已经脱离了正常的文档流。

  • 当我们在增加一个div之后
  • <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>relative</title> <style>
    *{
    margin: 0;
    padding: 0;
    }
    .test1{
    width: 100px;
    height: 100px;
    background: blue;
    }
    .test{
    width: 100px;
    height: 100px;
    background: red;
    position: absolute; } </style>
    </head>
    <body>
    <div class="test1"></div>
    <div class="test"></div> </body>
    </html>

    因为没有对其设置top bottom属性,所以这两个元素依然是按照标准的定位流进行布局。

  • 一旦设置了top left:(这里自己添加)可见此时以不再按照标准流的布局方式排
  • position-fixed:1)会脱离正常的文档流,可以在窗口的任何地方布局。2)不会随着滚动条移动
  • <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>relative</title>
    <style>
    body{
    height: 3000px;
    } .test{
    width: 100px;
    height: 100px;
    background: red;
    position: fixed;
    top:0px;
    left: 0px;
    } </style>
    </head>
    <body> <div class="test"></div>
    </body>
    </html>

    当我们滚动滚动条的时候会发现,该元素并不会随着滚动条移动。(这里没有贴样式)

  • 3)固定定位与绝对定位的区别
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>relative</title> <style>
    .test{
    width: 100px;
    height: 100px;
    background: red;
    position: fixed;
    top:100px;
    left: 100px; }
    .per{
    width: 300px;
    height: 300px;
    background: blue;
    position: absolute;
    left: 300px;
    top: 300px;
    } </style>
    </head>
    <body>
    <div class="per">
    <div class="test"></div> </div> </body>
    </html>

  • 可以看到红色依然是按照左上角进行定位的,并不是按照父元素定位的,这是固定定位与绝对定位的区别
  • position-inherit:继承,相应的元素可以继承父元素的定位属性
  • 没有对父元素设定定位属性
  • <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>relative</title> <style> *{
    margin: 0;
    padding: 0;
    }
    .per{
    width: 300px;
    height: 300px;
    background: red;
    position: relative; }
    .son{
    width: 100px;
    height: 100px;
    background: blue;
    position:inherit;
    top:100px;
    left: 100px; } </style>
    </head>
    <body>
    <div class="per">
    <div class="son"></div> </div> </body>
    </html>

  • 此时可以看到子元素依然是按照窗口的定位
  • 一旦将父元素设置了相对定位

css 中 position属性的更多相关文章

  1. 深入理解css中position属性及z-index属性

    深入理解css中position属性及z-index属性 在网页设计中,position属性的使用是非常重要的.有时如果不能认识清楚这个属性,将会给我们带来很多意想不到的困难. position属性共 ...

  2. CSS中Position属性

    也许你看到这个标题觉得很简单,确实这是一篇关于CSS中Position属性基础知识的文章,但是关于Position的一些细节也许你不了解. 1.简介 position有五个属性: static | r ...

  3. CSS中Position属性static、absolute、fixed、relative

    在html中网页可以看成一个立体的空间,一个完整的页面是由很多个页面堆积形成的,如下图所示   CSS中Position属性有四个可选值,它们分别是:static.absolute.fixed.rel ...

  4. 深入理解css中position属性及z-index属性 https://www.cnblogs.com/zhuzhenwei918/p/6112034.html

    深入理解css中position属性及z-index属性 请看出处:https://www.cnblogs.com/zhuzhenwei918/p/6112034.html 在网页设计中,positi ...

  5. css中position属性(absolute|relative|static|fixed)概述及应用

    position属性的相关定义: static:无特殊定位,对象遵循正常文档流; relative:对象遵循正常文档流; absolute:对象脱离正常文档流 fixed:对象脱离正常文档流 我们先来 ...

  6. 【转】CSS中position属性( absolute | relative | static | fixed )详解

    我们先来看看CSS3 Api中对position属性的相关定义: static:无特殊定位,对象遵循正常文档流.top,right,bottom,left等属性不会被应用. relative:对象遵循 ...

  7. CSS中position属性( absolute | relative | static | fixed )详解

    我们先来看看CSS3 Api中对position属性的相关定义: static:无特殊定位,对象遵循正常文档流.top,right,bottom,left等属性不会被应用. relative:对象遵循 ...

  8. CSS中position属性 (absolute,relative,static,fixed)

    只要position的属性值设置的不是默认的值则定位的元素都将脱离文档流 1.static是position的默认的值,按照正常的文档流进行排版,设置了该属性值得元素的top,left属性均不起作用. ...

  9. 转:深入理解css中position属性及z-index属性

    原文链接:https://www.cnblogs.com/zhuzhenwei918/p/6112034.html static定位是HTML元素的默认值,即没有定位,元素出现在正常的流中,因此,这种 ...

随机推荐

  1. linux用户、文件权限相关命令

    root 现代操作系统一般属于多用户的操作系统,也就是说,同一台机器可以为多个用户建立账户,一般这些用户都是为普通用户,这些普通用户能同时登录这台计算机,计算机对这些用户分配一定的资源. 普通用户在所 ...

  2. Jquery中val方法使用的坑

    Jquery中val方法使用 val()// 取得第一个匹配元素的当前值 val(val)// 设置所有匹配元素的值 val([val1, val2])// 设置多选的checkbox.多选selec ...

  3. BZOJ2342[Shoi2011]双倍回文——回文自动机

    题目描述 输入 输入分为两行,第一行为一个整数,表示字符串的长度,第二行有个连续的小写的英文字符,表示字符串的内容. 输出 输出文件只有一行,即:输入数据中字符串的最长双倍回文子串的长度,如果双倍回文 ...

  4. AtcoderARC062F Painting Graphs with AtCoDeer 【双连通分量】【polya原理】

    题目分析: 如果一个双连通分量是简单环,那么用polya原理计数循环移位即可. 如果一个双连通分量不是简单环,那么它必然可以两两互换,不信你可以证明一下相邻的可以互换. 如果一条边是桥,那么直接乘以k ...

  5. LSM

    1.MySQL存储引擎: B+树 https://blog.csdn.net/qq_26222859/article/details/80631121 2.HBase LSM树 核心:将对数据的修改增 ...

  6. WEB请求处理

    https://blog.csdn.net/bpingchang/article/details/51328941

  7. centos6.8下安装破解quartus prime16.0以及modelsim ae安装

    前言 装逼使用 流程 安装modelsim: 1.modelsim ae在linux下是32位的,对于64位系统需要安装32位库:yum install xulrunner.i686 2.给予权限: ...

  8. 百度分享不支持https的解决方案(单独部署静态文件)

    首先是参考了博客,下载百度分享的静态代码 static 链接为:https://www.cnblogs.com/mmzuo-798/p/6434576.html 后来在nginx的 nginx.con ...

  9. day5 笔记

    笔记 字符格式化输出: 占位符%s s=string 字符型%d d=dight 整数型%f f=float 浮点数 约等于小数 通过格式:%(str1,str2,str3)一一对应 数据运算 数据类 ...

  10. 数论细节梳理&模板

    初阶 扩展欧拉 \(k\ge\varphi(m)\)时,\(b^k\equiv b^{k\%\varphi(m)+\varphi(m)}(\bmod m\)) 扩展CRT 推式子合并同余方程. htt ...