【css笔记】css中的盒模型和三种定位机制(固定定位,绝对定位,浮动)
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中的盒模型和三种定位机制(固定定位,绝对定位,浮动)的更多相关文章
- EF Core中避免贫血模型的三种行之有效的方法(翻译)
Paul Hiles: 3 ways to avoid an anemic domain model in EF Core 1.引言 在使用ORM中(比如Entity Framework)贫血领域模型 ...
- 浅谈css中的盒模型(框模型)
css中的盒模型是css的基础,盒模型的理解可以帮助我们进行对样式进行修改.废话不多说,进入正题: 在w3c中,CSS 框模型 (Box Model) 规定了元素框处理元素内容.内边框.边框 和 外边 ...
- Web前端篇:CSS常用格式化排版、盒模型、浮动、定位、背景边框属性
目录 Web前端篇:CSS常用格式化排版.盒模型.浮动.定位.背景边框属性 1.常用格式化排版 2.CSS盒模型 3.浮动 4.定位 5.背景属性和边框属性 6.网页中规范和错误问题 7.显示方式 W ...
- HTML+CSS笔记 CSS笔记集合
HTML+CSS笔记 表格,超链接,图片,表单 涉及内容:表格,超链接,图片,表单 HTML+CSS笔记 CSS入门 涉及内容:简介,优势,语法说明,代码注释,CSS样式位置,不同样式优先级,选择器, ...
- 【转】css清除浮动float的三种方法总结,为什么清浮动?浮动会有那些影响?
摘要: css清除浮动float的三种方法总结,为什么清浮动?浮动会有那些影响? 一.抛一块问题砖(display: block)先看现象: 分析HTML代码结构: <div class ...
- CSS3使用盒模型实现三栏布局
本篇文章由:http://xinpure.com/css3-box-model-to-implement-a-three-column-layout/ 使用 Position 绝对定位也是可以实现三栏 ...
- Android平台中实现对XML的三种解析方式
本文介绍在Android平台中实现对XML的三种解析方式. XML在各种开发中都广泛应用,Android也不例外.作为承载数据的一个重要角色,如何读写XML成为Android开发中一项重要的技能. 在 ...
- JavaScript:学习笔记(7)——VAR、LET、CONST三种变量声明的区别
JavaScript:学习笔记(7)——VAR.LET.CONST三种变量声明的区别 ES2015(ES6)带来了许多闪亮的新功能,自2017年以来,许多JavaScript开发人员已经熟悉并开始使用 ...
- Tomcat中部署web应用的三种方式
Tomcat中部署web应用的三种方式(静态部署) 第一种,针对war或解压后的war,最为常用的是直接操作webapp目录,将完整的war包或者web应用直接放到webapp目录下.使用 ...
随机推荐
- Servlet+jsp的分页案例
查询的分页,在web中经常用到.一般,分页要维护的信息很多,我们把这些相关的信息,分装到一个类中,PageBean.具体如下: package cn.itcast.utils; import java ...
- (14)jdk1.5开始的一些新特性:静态导入,增强for循环,可变参数,自动装箱/拆箱,枚举类型
Jdk1.5新特性之静态导入 jdk1.5新特性值静态导入 静态导入的作用:简化缩写 静态导入的作用:可以作用一个类的所有静态成员. 静态导入的格式:import static 包名.类名.静态的成员 ...
- VS2013和VS2015中MVC 区域路由匹配顺序相反
创建测试工程 分别在vs2013和vs2015中创建mvc项目,并创建First.Second.Three三个Area,每个Area下面创建一个HomeController和Index视图.修改Rou ...
- 利用python的爬虫技术爬取百度贴吧的帖子
在爬取糗事百科的段子后,我又在知乎上找了一个爬取百度贴吧帖子的实例,为了巩固提升已掌握的爬虫知识,于是我打算自己也做一个. 实现目标:1,爬取楼主所发的帖子 2,显示所爬去的楼层以及帖子题目 3,将爬 ...
- 解决ubuntu更新中断后报错问题
今天在更新ubuntu的时候,更新了一半被我强制关闭了,就报错了 当再使用sudo apt-get update命令时出现了dpkg was interrupted,you must manually ...
- iOS全角符与半角符之间的转换
iOS全角符与半角符之间的转换 相关资料: 函数『CFStringTransform』中文 详情: 问题 1.17-03-15,「有人在群里边问怎么把『半角』符字符串转换成『全角』字符串?」,百度的 ...
- python多版本的pip共存问题解决办法
python pip 多版本 问题情景 最开始学python的时候用的是py2,且一直用pip来安装库函数.后来py3出来了,所以就装上了,但是一装上出问题了,主要有两个主要的问题.下面将详细说明. ...
- ajax ----进度条的原理
一.进度条的原理 新知识点:Html5中FormData,xmlHttpRequest中的upload属性,progress事件监控 xmlHttpRequest中的upload属性,实现: < ...
- 初步认识Thymeleaf:简单表达式和标签。(一)
本文只适用于不会Java对HTML语言有基础的程序员们,是浏览了各大博客后收集整理,重新编辑的一篇文章,希望能对大家有所帮助. 对于Thymeleaf,网上特别官方的解释无非就是:网站或者独立应用程序 ...
- React-Native 之 项目实战(三)
前言 本文有配套视频,可以酌情观看. 文中内容因各人理解不同,可能会有所偏差,欢迎朋友们联系我. 文中所有内容仅供学习交流之用,不可用于商业用途,如因此引起的相关法律法规责任,与我无关. 如文中内容对 ...