美文网首页
CSS盒模型(Box Model)

CSS盒模型(Box Model)

作者: yangchaojun | 来源:发表于2018-02-28 15:48 被阅读0次

在css中一般有两种盒模型标准,一种是W3C标准盒模型,另一种是IE标准盒模型。
大多数浏览器采用W3C标准模型,而IE中采用Microsoft自己的标准。
怪异模式是“部分浏览器在支持W3C标准的同时还保留了原来的解析模式”,怪异模式主要表现再IE内核的浏览器。
当不对Doctype进行定义时,会触发怪异模式。

两种盒模型的区别在于盒模型的计算方式不同,后面会提到可以通过CSS3中新增的属性box-sizing来控制两种盒模型的转换。

接下来以W3C标准来分析css盒模型到底是什么东西。


content-box

width

  • 指定content box 宽度
  • 百分数相对于父容器(包含块)的content box 宽度

height

  • 指定content box 高度
  • 百分数相对于父容器(包含块)的content box 高度
  • 只有当包含块的高度不依赖该元素是,百分比高度才会生效

padding

  • 内边距
  • padding-top , padding-right , padding-bottom , padding-left
  • 缩写: padding

margin

  • 外边距
  • margin-top , margin-right , margin-bottom , margin-left
  • 缩写: margin
  • 外边距合并现象
  • margin值可以使负的,说明两个盒子可以重叠

min-width & max-width

  • 设置元素的最小宽度和最大宽度

min-height & max-height

  • 设置元素的最小高度和最大高度

overflow

  • 溢出控制
  • 取值:visiable | hidden | scroll | auto
  • 初始值:visiable
  • overflow-x & overflow-y
    • 可以控制水平和垂直方向上的溢出

box-sizing

  • 这个属性可以控制盒模型的计算方式
  • 取值 : border-box | content-box
  • 初始值: content-box ,即Ie8以上默认是W3C标准盒子模型
  • 在标准模式下,一个块的总宽度=width+margin(左右)+padding(左右)+border(左右)


    content-box
  • 在怪异模式下,一个块的总宽度=width+margin(左右)(既width已经包含了padding和border值)


    content-box
  • 提示: 按照具体需求可以灵活控制Box Model

border

  • 边框的三个要素
    • border-width: <length> | thin | medium | thick
    • border-style: none | solid | dashed | dotted | double
    • border-color : <color>
  • 四个方向 :border-left , border-top, border-right,border-bottom
  • border可以用来做三角形

一些概念介绍

视口(Viewport)
  • 浏览器的可视区域
  • 用户通过视口查看网页内容(好像人通过窗口看风景)
块级元素(Block-level Elements)
  • 自动占满一行
  • 会被格式化成块状的元素
  • 例如 p,div,section等
  • 将display设置成block,list-item,table,使元素变为块级
行级元素(inline-level Elements) 也叫 内联元素
  • 不会为其内容生成块级框
  • 让其内容分布在多行中
  • 将display设置为 inline,inline-block,inline-table使元素变为行级
盒子的生成
  • 每个块级元素生成一个主块级盒,用它来包含子级盒
  • 每个行级元素生成一个行级盒,行级盒分布于多行
Box Model revisited
  • margin: 行级盒的margin-top 和margin-bottom 不会产生效果
  • padding: 行级盒的padding-top 和 padding-bottom 不会影响行布局
display属性
  • block : 生成块级盒
  • inline : 生成行级盒
  • inline-block: 生成行级盒,为其内容生成块级盒,意味着内容可以设置宽高,margin,padding
  • none:在排版是将元素忽略
visibility
  • 控制元素展示
  • 取值: visiable | hidden | collapse
  • 初始值:visiable
Generated Content 伪元素
  • 控制元素
  • ::before 和 ::after
  • content

相关文章

网友评论

      本文标题:CSS盒模型(Box Model)

      本文链接:https://www.haomeiwen.com/subject/utabxftx.html