盒子模型

什么是盒子模型

网页设计中常听的属性名:内容(content)、内边距(padding)、边框(border)、外边距(margin), CSS盒子模型都具备这些属性。这些属性我们可以用日常生活中的常见事物——盒子作一个比喻来理解,所以叫它盒子模型。CSS盒子模型就是在网页设计中经常用到的CSS技术所使用的一种思维模型。

网页中所有元素都具备以下四个属性:
首先一个盒模型包含了padding(内边距)margin(外边距)border(边框)内容(content)也就是元素本身的width,height

盒模型的相关属性

内容属性(width、height)

width属性:元素的宽度
height属性:元素的高度

属性值:auto|数值|inherit; 继承inherit
宽度/高度等于auto相当于没有设置宽度/高度效果一样

max-width属性:最大宽度 min-width 最小宽度
max-height 最大高度 min-height 最小高度

内边距(padding)

padding 属性:内填充、内边距,元素便可和元素内容之间的空白区域

单边的内填充

padding -top   上内填充
padding-right   右内填充
padding-bottom 下内填充
Padding-left     左内填充

文字在内容区显示 不在padding区显示
padding区域会显示background-color的颜色

填充是内容区和边框之间的空间。填充的属性有五种 ,即padding -top、padding -bottom、padding -left、padding-right 以及综合了以上四种方向的快捷填充属性padding。使用这五种属性可以指定内容区信息内容与各方向边框间的距离。设置盒子背景色属性时,可使背景色延伸到填充区域。

复合写法:
padding:10px; 四周10
padding:10px 20px;  上下10  左右20
padding:10px 20px 30px; 上10 左右20 下30
padding:10px 20px 30px 40px;上10 右20 下30 左40

注意:百分比–上下内填充与左右填充百分数的数值是相对于父级的width宽度计算的;

边框(border)

border属性:边框

border-width 边框宽度
border-style 边框样式
border-style:none 默认没有
border-style:solid 实现
border-style:double 双实线
border-style:dashed 条状
border-style:dotted 点状
border-color 边框颜色 默认边框颜色元素本身的前景色
border-color:red yellow pink blue;


复合写法:

border: 1px  solid  red;

顺序为:width style color

border-Radius边框圆角

Border-Radius  20px  四周10px   30px       左上右下10px  右上左下30px10px 20px 30px   左上10  右上左下20px  右下3010 20 30 40     左上10 右下20 右上30 左下40
border-top-left-radius:30px
border-top-right-radius:30px
border-bottom-left-radius:30px
border-bottom-right-radius:30px

边框是环绕内容区和填充的边界。边框的属性有border-style、border-width和border-color 以及综合了以上三类属性的快捷边框属性 border。border-style 属性是边框最重要的属性,如果没有指定边框样式,其他的边框属性都会被忽略,边框将不存在。CSS规定了dotted(点线)、dashed(虚线)、solid(实线)等九种边框样式。使用border-width属性可以指定边框的宽度,其属性值可以是长度计量值,也可以是CSS规定的thin、medium 和thick。使用border-color属性可以为边框指定相应的颜色,其属性值可以是RGB值,也可以是CSS 规定的17个颜色名 。在设定以上三种边框属性时,既可以进行边框四个方向整体的快捷设置,也可以进行四个方向的专向设置,如border: 2px solid green 或border-top-style: solid、border-left-color: red等。设置盒子背景色属性时,在IE中背景不会延伸到边框区域,但在FF等标准浏览器中,背景颜色可以延伸到边框区域,特别是单边框设置为点线或虚线时能看到效果

外边距(margin)

属性 外间距、外边距–定义元素周围的空间
margin-top \right\left\bottom 外边距
写法和padding一样,都是上右下左

margin:0 auto; 可以直接实现一个元素在另外一个元素内水平居中,前提是这个元素需要固定宽。

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>我的第一个页面</title><style>.div1 {width: 300px;height: 200px;padding: 5px 10px;border: 2px solid #333;margin: 10px 5px;}.div2 {width: 100px;margin: 0 auto;}</style>
</head><body><div class="div1"><div class="div2">我是内容</div></div>
</body></html>


margin值的问题

1、父子关系外边距塌陷问题–元素嵌套关系,子元素的margin值会叠加给父元素,
现象:给子元素设置外间距,会和父元素的外间距合并,最终会表现其中较大的外间距的值。

原因:父盒和子盒公用一个上外间距的区域
解决
1.Border-top:1px;
2.Padding-top:1px;
3.给父级元素添加overflow:hidden属性;触发BFC,改变父元素的渲染规则;

2、 兄弟关系的外边距叠加–元素并列关系,垂直方向上相邻的margin值会相遇出现叠加
现象:上一个盒子设置下外边距 下一个盒子设置上外边距,两个值相同取当前值,如果两个值不同,取较大值;
原因:上下两个兄弟关系的盒子共用一个外间距区域
解决方法:给两个盒子各加一个父级盒子,父级添加overflow:hidden,或者生成BFC

盒子的实际宽度=
width属性 + padding-left + padding-right + border-left + border-right
盒子的总宽度=
width属性 + padding-left + padding-right + border-left + border-right+ margin-left + margin-right

盒子的实际高度=
height属性 + padding-top + padding-bottom + border-top + border-bottom
盒子的总高度=
height属性 + padding-top + padding-bottom + border-top + border-bottom+ margin-top + margin-bottom

标准盒子模型和怪异盒子模型(IE的盒模型)

在标准的盒模型中一个盒子的宽度是:margin(左右外边距)+padding(左右内边距)+border(左右边框)+内容的(width).

而在怪异盒模型中:一个快的宽度=内容的(width)+margin(左右)(这里的内容width包含了padding(左右内边距)+border(左右边框))。

两种模式的转换(通过box-sizing的方法)

box-sizing中比较常用的两个属性值为 content-box 和 border-box ,它可以改变盒子模型的解析计算模式。

当设置box-sizing:content-box时,采用标准模式进行计算,默认就是这种模式;
当设置box-sizing:border-box时,采用怪异模式进行计算;

前端基础(八)_盒子模型(标准盒子模型和怪异盒子模型)相关推荐

  1. java 前端基础知识_【计算机·知识】关于前端的计算机基础知识

    原标题:[计算机·知识]关于前端的计算机基础知识 作为一个刚刚入门的程序猿,你是否对专业知识有足够的了解?今天新闻君带你走进前端的世界. 前端的语言接触起来相对于后端的语言要容易不少,但前端的语言也有 ...

  2. 前端基础(四)_数据类型的强制转换

    数据类型的强制转换就是通过js提供的函数进行数据转换.常见的就是将其他类型的数据转换成number类型和string类型. 一.其他类型转 number 类型 1.Number Number 方法将其 ...

  3. 前端基础(一)_前端页面构成

    一.前端页面构成 1.HTML(Hypertext Markup Language) Html–超文本标记语言, 结构层由HTML标记语言创建的,负责页面的语义.(它包括一系列标签,主要分为块标签和行 ...

  4. 前端基础技术_浏览器同源政策(same-origin policy)及其规避方法

    目的:对浏览器的"同源策略"和"同源异构策略(跨域)"有个初步认识. 同源策略:此策略是浏览器和后台通讯之间的一个安全协议的支持,同源指两个网址的协议.域名(或 ...

  5. 自学前端第十天 : CSS怪异盒子模型

    一.怪异盒子模型 怪异盒模型是IE盒子模型 我们可以通过 css 样式 box-sizing来进行切换 select {box-sizing: border-box; /* 怪异盒子模型 */box- ...

  6. 标准盒子模型和怪异盒子模型(详解)

    一.盒子模型定义 盒子模型是css技术所使用的一种思维模型.盒子模型是指将网页设计页面中的内容元素看作一个个装了东西的矩形盒子.每个矩形盒子都由内容.内边距.边框和外边距4个部分组成.除去内容部分,其 ...

  7. 前端基础知识持续整理中。。

    一.Css盒模型 标准盒模型和IE盒模型 在 CSS 盒子模型 (Box Model) 规定了元素处理元素的几种方式: width和height:内容的宽度.高度(不是盒子的宽度.高度). pad ...

  8. 标准盒模型怪异盒模型

    标准盒模型&怪异盒模型 盒子模型的组成: ​ 盒子模型一般由:内容(content).边框(border).左右外边距(margin-left+margin-right).左右内边距(padd ...

  9. 标准盒模型 和怪异盒模型

    怪异盒子模型 box-sizing :border-content; 标准盒子模型,平常不设置就默认是标准盒子模型 box-sizing :border-box; 怪异盒子模型 标准盒子模型与怪异盒子 ...

最新文章

  1. 【hdu】4521 小明序列【LIS变种】【间隔至少为d】
  2. 应用在大规模推荐系统,Facebook提出组合embedding方法 | KDD 2020
  3. linux shell 日期比较大小,在Shell中使用日期运算和比较详解
  4. angular1x初始与架构演进(三)Ui-Router+OcLazyLoad加载模块
  5. c语言复化求积公式程序,第六章 函数与宏定义实验2
  6. .NET 跨平台服务端资料
  7. jzoj6312-Lottery【dp,前缀和】
  8. cuid卡写入后锁死_CUID卡,CUID白卡,CUID门禁卡,CUID电梯卡,CUID可改写卡
  9. 局域网聊天工具FreeChat 1.0 开发日志
  10. Ultrabook是什么意思
  11. 数据分析汇报用这个神器,让他们弃用了Excel和PPT
  12. 指标公式c语言源码下载,自用60分钟指标源码
  13. 为什么不早一点告诉我?——情场篇
  14. 解决VSCode下载慢或下载失败的问题
  15. 南方CASS9.0软件资源下载附安装教程
  16. ogg格式怎样才能转换成MP3格式
  17. java逻辑常量两种,JAVA常量
  18. linux下docker的使用教程,Linux中docker的使用方法讲解
  19. linux分段内存管理中的GDT,LDT,GDTR,LDTR
  20. 九宫怎么排列和使用_风水知识:三元九运与九宫飞星排布方法!

热门文章

  1. Cf 362div2 C [map暴力,思维能力]
  2. 常用涡识别方法的Tecplot实现(Q准则、λ2 准则、delta准则、Omega准则)
  3. 程序猿攀登的高峰:九寨沟、黄山、华山、泰山、普陀山、云台山
  4. 使用Echarts地图获取指定省想要的多个地市
  5. CCPC2018秦皇岛游记
  6. C语言简单多实例——摄氏一华氏温度转换表
  7. Python语言程序设计 习题3
  8. CIFAR-10百度云资源
  9. 类似圆角外翻效果-三角形突出
  10. 银行数字化转型导师坚鹏:数字化思维创新与金融业转型升级