html页面上的元素都可以看成是框组成的,框通过三种定位机制排列在一起就过程了我们看到的页面.而框就是盒模型.

盒模型

1.页面上的每个元素可以看成一个矩形框,每个框由元素的内容,内边距,边框和外边距组成。

2.如果在元素上添加背景,则背景是边框, 内边距和内容组成的区域.

3.在css中width和height指的是内容区域的宽度和高度。增加内边距,边框和外边距不会影响内容区域的尺寸,但会增加元素框的总尺寸。即width=element

注意:ie的盒模型中,width指的是内容,内边距,和边框的宽度总和(没有外边距)。即:width=element+padding+border

外边距叠加:当两个或更多的垂直外边距相遇时,它们将形成一个新外边距。这个新外边距的高度等于两个发生叠加的外边距的高度中的较大者。

注意:只有普通文档流中的块框的垂直外边距才会发生外边距叠加。行内框,浮动框或绝对定位框之间的外边距不会叠加.

会有以下四种情况:

html中的元素分为块级元素和行内元素,对应的生成的框即为块框和行内框.

块框从上到下一个接着一个排列,块框之间的距离由垂直外边距决定.

行内框在一行中水平排列.

注意:可通过设置display属性改变框的类型.

css的三种定位机制

css由3中基本的定位机制:普通流,浮动和绝对定位.

若非通过css样式指定,所有的框都在普桶流中,普通流中的元素框位置由元素在html中的位置决定.

相对定位(视为普通流定位):因为是相对定位元素的位置是”相对于”元素在普通流中的初始位置而定,所以视为普通流定位的一种.相对定位的元素任占据原来的空间,并且可以覆盖其他框.

将属性position设置为relative.通过设置top和left使框相对于原来元素的起点移动

绝对定位:绝对定位的元素的位置是相对于距离它最近的那个已定位的祖先元素确定的.绝对定位的元素位置与文档流无关,因此不占据空间.

注意:

相对定位元素的位置是”相对于”元素在普通流中的初始位置而定.

绝对定位是”相对于”距离它最近的已定位祖先元素,如不存在,则相对于初始包含块.

注意:绝对定位因为与文档流无关,因此也会覆盖页面上的其他元素.p47

当绝对定位的元素由重合时刻通过z-index设置叠放次序.

将屏幕看成湖面,z-index设置的值越高,离湖面越近,则显示的优先级就越高.z-index值高的元素显示优先级高于z-index值低的元素.

固定定位:视为绝对定位的一种. 固定元素的包含块为浏览器窗口.

浮动:浮动会让元素脱离文档流.浮动框可以左右移动知道它的外边距碰到包含框或者另一个浮动框的边缘.

若浮动的元素后面有一个文档流中的元素,那么浮动元素旁边的行框将被缩短.文档流中的元素会紧跟浮动框之后(例如文本围绕图像).

解决方法:对行框应用clear属性,属性值为left,right,both,none.而在具体实现时,浏览器会在元素顶上添加足够的外边距,是元素的顶边缘垂直下降到浮动框下面.

与css定位有关的属性(第一个属性值为默认属性):

position

规定元素的定位类型

static, absolute, fixed, relative

top

设置定位元素的上外边距边界与其包含块上边界之间的偏移

auto, 百分数, 数值

right

设置定位元素右外边距边界与其包含块右边界之间的偏移

auto, 百分数, 数值

bottom

设置定位元素下外边距边界与其包含块下边界之间的偏移

auto, 百分数, 数值

left

设置定位元素左外边距边界与其包含块左边界之间的偏移

auto, 百分数, 数值

float

规定框的浮动

none, left, right

clear

规定元素的哪一侧不允许其他浮动元素

none, left, right, both

display

规定元素应生成框的类型

inline, none, block, inline-block

clip

剪裁绝对定位元素

auto, 形状rect (top, right, bottom, left)

overflow

规定当内容溢出元素框时发生的事情

visible, hidden, scroll, auto

vertical-align

设置元素的垂直对齐方式

baseline, sub, super, top, bottom, 数值,百分数

visibility

规定元素是否可见

visible, hidden, collapse

Z-index

设置元素的堆叠顺序

auto, 数值

cursor

规定要显示的光标的类型

Auto, text, help,pointer, move

【css笔记】css中的盒模型和三种定位机制(固定定位,绝对定位,浮动)的更多相关文章

  1. EF Core中避免贫血模型的三种行之有效的方法(翻译)

    Paul Hiles: 3 ways to avoid an anemic domain model in EF Core 1.引言 在使用ORM中(比如Entity Framework)贫血领域模型 ...

  2. 浅谈css中的盒模型(框模型)

    css中的盒模型是css的基础,盒模型的理解可以帮助我们进行对样式进行修改.废话不多说,进入正题: 在w3c中,CSS 框模型 (Box Model) 规定了元素框处理元素内容.内边框.边框 和 外边 ...

  3. Web前端篇:CSS常用格式化排版、盒模型、浮动、定位、背景边框属性

    目录 Web前端篇:CSS常用格式化排版.盒模型.浮动.定位.背景边框属性 1.常用格式化排版 2.CSS盒模型 3.浮动 4.定位 5.背景属性和边框属性 6.网页中规范和错误问题 7.显示方式 W ...

  4. HTML+CSS笔记 CSS笔记集合

    HTML+CSS笔记 表格,超链接,图片,表单 涉及内容:表格,超链接,图片,表单 HTML+CSS笔记 CSS入门 涉及内容:简介,优势,语法说明,代码注释,CSS样式位置,不同样式优先级,选择器, ...

  5. 【转】css清除浮动float的三种方法总结,为什么清浮动?浮动会有那些影响?

    摘要: css清除浮动float的三种方法总结,为什么清浮动?浮动会有那些影响?     一.抛一块问题砖(display: block)先看现象: 分析HTML代码结构: <div class ...

  6. CSS3使用盒模型实现三栏布局

    本篇文章由:http://xinpure.com/css3-box-model-to-implement-a-three-column-layout/ 使用 Position 绝对定位也是可以实现三栏 ...

  7. Android平台中实现对XML的三种解析方式

    本文介绍在Android平台中实现对XML的三种解析方式. XML在各种开发中都广泛应用,Android也不例外.作为承载数据的一个重要角色,如何读写XML成为Android开发中一项重要的技能. 在 ...

  8. JavaScript:学习笔记(7)——VAR、LET、CONST三种变量声明的区别

    JavaScript:学习笔记(7)——VAR.LET.CONST三种变量声明的区别 ES2015(ES6)带来了许多闪亮的新功能,自2017年以来,许多JavaScript开发人员已经熟悉并开始使用 ...

  9. Tomcat中部署web应用的三种方式

    Tomcat中部署web应用的三种方式(静态部署)       第一种,针对war或解压后的war,最为常用的是直接操作webapp目录,将完整的war包或者web应用直接放到webapp目录下.使用 ...

随机推荐

  1. 梳理下Cordova的热更新

    公司的大部分都是Hybrid 产品,也就是混合开发,所以比较重要的一个核心功能就是热更新了. 做这个功能的时候中间碰到不少坑,记录一下,比较简单,大致思想就是从服务器拉取JS文件替换掉本地对应文件 之 ...

  2. rsync+inotify脚本

        #!/bin/bash src=/data/                           # 需要同步的源路径 des=data                             ...

  3. Cesium原理篇:3D Tiles(3)个人总结

    个人结论:目前,在演示层面,3D Tiles问题不大,但项目应用上就不够成熟了,所以问问自己,你是想吃瓜呢还是想吃螃蟹? 好的方面 数据规范 我非常喜欢glTF的整体设计,概括有四点:第一,数据块(B ...

  4. 类string解析

    原创作品,转载请注明来源:http://www.cnblogs.com/shrimp-can/p/5645248.html 在涉及字符串的时候,我们可以定义字符数组或指针,其实还有一个类,专门是为字符 ...

  5. nvcc编译器选项及配置

    nvcc命令选项: 选项命令有长名和短名,通常我们使用是用短名,长名主要用于描述. 1.指定编译阶段 主要指定编译的阶段以及要编译的输入文件. -cuda  -cubin  -fatbin  -ptx ...

  6. 【Unity编程】Unity中关于四元数的API详解

    本文为博主原创文章,欢迎转载,请保留出处:http://blog.csdn.net/andrewfan Unity中关于四元数的API详解 Quaternion类 Quaternion(四元数)用于计 ...

  7. Struts2.5简单使用入门

    今天学了Struts2.5最新版的,老师在黑板上讲的很是简单,也很是容易,简单的就实现了.可是课下让我们自己弄,自己无论如何都无法运行成功,一直提示404.偶然间灵机一动,改了一下那个文件就好了.希望 ...

  8. Weblogic+apache多虚拟主机

    p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-bottom: .0001pt; text-align: justify; f ...

  9. Python之路-Linux命令基础(3)

    作业一: 1)将用户信息数据库文件和组信息数据库文件纵向合并为一个文件/1.txt(覆盖) 2)将用户信息数据库文件和用户密码数据库文件纵向合并为一个文件/2.txt(追加) 3)将/1.txt./2 ...

  10. 性能调优案例分享:Mysql的cpu过高

    性能调优案例分享:Mysql的cpu过高   问题:一个系统,Mysql数据库,数据量变大之后.mysql的cpu占用率很高,一个测试端访问服务器时mysql的cpu占用率为15% ,6个测试端连服务 ...