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. JQ鼠标右键点击功能 兼容IE8

    //阻止浏览器当前DIV默认右键事件 $("div").unbind("mousedown").bind("contextmenu", fu ...

  2. dxxzc团队及队员学号后三位

    队名:dxxzc团队 组长:邢正080 组员:董冰068   许国庆079   张琦057 曹华058

  3. window.onload 和 $(document).ready(function(){})的区别

    这篇作为我的新的起点开始吧,发现年纪大了,记性就不好了,有些东西老是记了忘,忘了百度.在学一些新知识的时候也是这样的毛病,总是重复学习,这样效率真心差!所以决定开始认真写博客! 本来想封装一个预加载的 ...

  4. 【Electron】Electron开发入门(四):操作PC端文件系统

    一.调用PC端默认方式打开本地文件 在main.js里 // 打开系统本地文件或者网页链接 const {shell} = require('electron'); // Open a local f ...

  5. HBase_在Linux上安装以及运用

    1.上传解压文件 文件:hbase-1.0.1.1-bin.tar 2.更改配置文件 在hbase-env.sh中, export JAVA_HOME=/home/lang/software/jdk1 ...

  6. 解决eclipse中文字很小

    新下载的eclipse4.2.1版本,显示中文字体很小,但是英文比较正常.网上查看要更改字体大小,但是更改后英文也变大了,不是想要的结果. window – preferences – general ...

  7. sublimeText3插件安装

    1,官方下载sublimeText 3(百度搜索) 2,安装成功后按Ctrl+`调出console 3,然后输入 import urllib.request,os; pf = 'Package Con ...

  8. XMLHttpRequest API 使用指南

    一.实例化 XMLHttpRequest 对象 使用 Ajax API 的第一件事情就是实例化 XMLHttpRequest 对象. var xhr = new XMLHttpRequest(); 二 ...

  9. mac上使用使用rz,sz命令

    mac上使用rz,sz命令,mac上的终端不支持rz 和sz,所以安装iterm并配置使用rz和cz 1.首先需要下载安装iterm2,下载地址:下载后安装 http://www.iterm2.cn/ ...

  10. Python3.5爬虫统计AcFun所有视频,并按各个类别进行Top100排序展示

    前(b)言(b): 前段时间对Python产生了浓厚的兴趣,所以决定入门学习了1个多月,后来某时我需要对tomcat做一个压力测试,于是我想到了用Python写一个压力测试的脚本吧!最后捣鼓出了一个脚 ...