CSS-盒子模型

前言:

当对一个文档进行布局(layout)的时候,浏览器的渲染引擎会根据标准之一的 CSS 基础框盒模型(CSS basic box model),将所有元素表示为一个个矩形的盒子(box)。CSS 决定这些盒子的大小、位置以及属性(例如颜色、背景、边框尺寸…)。

盒模型的认识:

  • 基本概念:标准模型+IE模型。 包括margin,border,padding,content
  • 标准模型和IE模型的区别
  • css如何设置获取这两种模型的宽和高
  • js如何设置获取盒模型对应的宽和高
  • 根据盒模型解释边距重叠
  • BFC(边距重叠解决方案,还有IFC)解决边距重叠

基本概念:标准模型+IE模型:

每个盒子由四个部分(或称区域)组成,其效用由它们各自的边界(Edge)所定义(原文:defined by their respective edges,可能意指容纳、包含、限制等)。如图,与盒子的四个组成区域相对应,每个盒子有四个边界:内容边界 Content edge、内边距边界 Padding Edge、边框边界 Border Edge、外边框边界 Margin Edge。

在这里插入图片描述
由于IE盒模型的怪异模式,IE模型和标准模型的内容计算方式不同。

标准模型和IE模型的区别:

IE模型和标准模型的区别是内容计算方式的不同。

IE模型元素宽度width=content+padding+border,高度计算相同:
在这里插入图片描述

标准模型元素宽度width=content,高度计算相同:
在这里插入图片描述

css如何设置获取这两种模型的宽和高:

通过css3新增的属性 box-sizing: content-box | border-box分别设置盒模型为标准模型(content-box)和IE模型(border-box)。

.content-box {box-sizing:content-box;width: 100px;height: 50px;padding: 10px;border: 5px solid red;margin: 15px;
}

在这里插入图片描述
.content-box设置为标准模型,它的元素宽度width=100px。

.border-box {box-sizing: border-box;width: 100px;height: 50px;padding: 10px;border: 5px solid red;margin: 15px;
}

在这里插入图片描述
.border-box设置为IE模型,它的元素宽度width=content + 2 * padding + 2 * border = 70px + 2 *10px + 2 * 5px = 100px。

javascript如何设置获取盒模型对应的宽和高:

  • dom.style.width/height 只能取到行内样式的宽和高,style标签中和link外链的样式取不到。
  • dom.currentStyle.width/height 取到的是最终渲染后的宽和高(只有IE支持此属性)。
  • window.getComputedStyle(dom).width/height 取到的是最终渲染后的宽和高(大多浏览器支持,IE9以上支持)。
  • dom.getBoundingClientRect().width/height 也是得到渲染后的宽和高,除此外还可以取到相对于视窗的上下左右的距离(大多浏览器支持。IE9以上支持)。

外边距重叠:

当两个垂直外边距相遇时,他们将形成一个外边距,合并后的外边距高度等于两个发生合并的外边距的高度中的较大者。注意:只有普通文档流中块框的垂直外边距才会发生外边距合并,行内框、浮动框或绝对定位之间的外边距不会合并。

在这里插入图片描述

BFC:

BFC(Block Formatting Context):块级格式化上下文。
BFC决定了元素如何对其内容进行定位,以及与其他元素的关系和相互作用。当设计到可视化布局的时候,BFC提供了一个环境,HTML元素在这个环境中按照一定的规则进行布局。一个环境中的元素不会影响到其他环境中的布局。

BFC的原理(渲染规则):

  • 根元素或其它包含它的元素
  • overflow不为visible;
  • 浮动元素(float的值不为none);
  • 绝对定位元素 (position的值不为static或relative);
  • 内联块(元素具有 display: inline-block);
  • 表格单元格(元素具有 display: table,table-cell,HTML表格单元格默认属性);
  • 表格标题 (元素具有 display: table-caption, HTML表格标题默认属性);
  • display: flex,inline-flex;
  • display: flow-root;
  • column-span: all 应当总是会创建一个新的格式化上下文,即便具有 column-span: all 的元素并不被包裹在一个多列容器中。
  • 一个块格式化上下文包括创建它的元素内部所有内容,除了被包含于创建新的块级格式化上下文的后代元素内的元素。
 <section id="layout"><style media="screen">#layout {background: red;}#layout .left {float: left;width: 100px;height: 100px;background: pink;}#layout .right {height: 110px;background: #ccc;}</style><div class="left"></div><div class="right"></div></section>

在这里插入图片描述
这样发现浮动元素叠在 .right 元素的上面,这样的话我们可以通过在.right元素上加 overflow:hidden (用其他的方式创建BFC也可以)创建BFC就可以解决。

#layout .right {height: 110px;background: #ccc;overflow:hidden;//	float: left}

在这里插入图片描述
BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素。反之也如此。

参考:
CSS 基础框盒模型介绍

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/252737.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

盒子模型

1.常见的块级元素均具有盒子模型的特征&#xff1b; 2. div{border:2px solid red; } 等价于&#xff1a; div{border-width:2px;border-style:solid;border-color:red; } 其中&#xff1a; 1&#xff09;、border-style&#xff08;边框样式&#xff09;常见样式有&#xff…

CSS:盒子模型

盒子模型 盒子模型属性 网页中的所有元素都可以看成一个个的盒子&#xff0c;盒子模型由以下四部分组成&#xff1a;外边距、边框、内边距、内容 CSS就是控制盒子的尺寸、位置等&#xff0c;来实现网页的布局 <style type"text/css"> .box{margin: 15px;bo…

CC攻击常见类型集合

什么是CC攻击&#xff1f; CC攻击是攻击者借助代理服务器或者大量肉鸡模拟多个用户不断访问目标网站&#xff0c;生成指向受害主机的合法请求&#xff0c;实现DDoS和伪装攻击。 因需处理大量请求及后台数据库查询动作&#xff0c;服务器CPU、内存、带宽等资源长时间被占用浪费…

初识弹性盒子

1.介绍 弹性盒子就是当页面需要适应不同的尺寸以及设备类型时确保元素布局恰当的布局方式&#xff0c;未来还有网格布局但目前兼容性不好 display:grid 2.移动端的补充 再次强调 在移动端所有有尺寸的地方推荐单位 rem meta不能忘记写 calc&#xff08;&#xff09; 比如定义75…

烧写linux系统到盒子,在Linux命令行中将礼品包装在盒子中

春节&#xff0c;圣诞&#xff0c;元旦&#xff0c;每个节日&#xff0c;每个Linux终端用户都应该得到一份小礼物。不管你是庆祝春节&#xff0c;还是另一个节日。我收集到的几个Linux命令行工具&#xff0c;供您欣赏并与朋友共享。让我们一起来找点乐子&#xff0c;给这个寒冷…

CSS盒子

CSS盒子 盒子介绍 盒子必须是块元素 使用前需要添加 * {margin: 0;padding: 0;box-sizing: border-box; }让盒子根合理 盒子主要包括:盒子宽高,盒子边框,盒子内边距 ,盒子外边距,盒子阴影, 盒子圆角 先来看一个案例 <!DOCTYPE html> <html lang"en"&…

flex弹性盒子布局

flex是flexible box 的缩写&#xff0c;即为“弹性布局”&#xff0c;用来为盒子模型提供最大的灵活性&#xff0c;任何容器都可以指定为flex布局&#xff1b; flex容器&#xff1a;采用 flex 布局的元素&#xff0c;即容器&#xff1b; flex项目&#xff1a;采用 flex 布局的…

Wireshark网络抓包工具(cap文件查看器) v2.6.2 绿色便携版

Wireshark 是一款免费开源的网络嗅探抓包工具&#xff0c;网络封包分析软件的功能是撷取网络封包&#xff0c;并尽可能显示出最为详细的网络封包资料。Wireshark 网络抓包工具使用WinPCAP作为接口&#xff0c;直接与网卡进行数据报文交换&#xff0c;可以实时检测网络通讯数据&…

一款二进制文件查看器

由于使用的是Notepad 64位版本&#xff0c;在网上找了很多二进制查看插件HexEditor.dll要么是32位不兼容&#xff0c;要么是出现除零的错误&#xff08;以前找到过一次支持Notepad 64位版本的HexEditor.dll&#xff0c;这次死活找不到啦&#xff09;。 本人仅仅是看看二进制文件…

windows 照片查看器无法打开图片 因为照片查看器不支持此文件格式,或者你没有照片查看器的最新更新

目录 问题​ 1、排查磁盘空间和内存 2、扫描系统文件进行修复 问题 windows 照片查看器无法打开图片&#xff0c;显示空白或提示&#xff1a;windows 照片查看器无法打开图片&#xff0c;因为照片查看器不支持此文件格式&#xff0c;或者你没有照片查看器的最新更新。 1、排…

二进制文件(.bin)查看

今天遇到一个问题&#xff1a;调用密码机接口生成了128MB的二进制数据&#xff0c;想打开查看是否有具体的格式或者添加其他的内容&#xff1b; 最简单的方式是通过notepad插件直接查看&#xff1b;两种方式安装插件&#xff1a; 第一种安装方式&#xff1a;直接插件进行安装…

好用的Bin文件查看器,J-flash

工作中&#xff0c;很多地方用到Bin文件&#xff0c;如编译完成后的固件和从MCU的Flash读出来的文件&#xff0c;这时候一个好的Bin文件查看器至关重要。经常我们用STM32自带的STM32 ST-LINK Utility可以直接查看&#xff0c;但是一行只能显示16个字节&#xff0c;为了显示更多…

3d模型轻量级查看器-Autodesk FBX Review

本人在百度查找轻量级模型查看器&#xff0c;如supermodel&#xff0c;meshview都有一定缺点&#xff0c;如supermodel无法在选择模型打开方式的时候进行打开&#xff0c;只能通过软件自带的openmodel打开&#xff0c;但打开之后的obj模型没有材质&#xff0c;所以模型的颜色很…

BinaryViewer(二进制查看器)使用教程(附下载)

1.BinaryViewer操作界面 2.面板功能 1.数据面板 此面板占据了屏幕的最中央部分&#xff0c;其目的是顺序显示打开的文件或物理驱动器中的所有数据。此面板通常以两列显示数据。每列都可以按用户选择的格式显示数据。请转到数据显示模式&#xff0c;查看如何更改数据面板中显示…

服务器ftp查看文件,ftp命令查看文件列表 - 卡饭网

ftp的dir或ls命令无法查看文件列表怎么办 ftp的dir或ls命令无法查看文件列表怎么办 网友们可能在使用ftp的dir或ls命令时查看文件列表,但是却无法看到,受到了限制,那么无法查看文件列表这就造成了我们许多的麻烦,那么要怎么的解决这个问题呢!现在我们一起来看看吧! 在Win7系…

Spine 骨骼动画查看器 Skeleton Viewer_官方文档中文版

Spine 骨骼动画查看器 Skeleton Viewer_官方文档中文版 大家好&#xff0c;我是笨笨&#xff0c;笨笨的笨&#xff0c;笨笨的笨&#xff0c;谢谢&#xff01; 欢迎加入专业Spine技术交流群 Spine2D骨骼动画 7708065 此文最初发表在群论坛&#xff0c;但后来腾讯放弃了群论坛所…

html查看器 小米8,小米文档查看器app

小米文档查看器app是一款十分好用的手机端的小米文档管理工具&#xff0c;专业的文档处理工具&#xff0c;wps的专门定制版本&#xff0c;功能基本都加入了其中&#xff0c;使用起来十分的方面&#xff0c;需要的小伙伴赶紧来下载这款小米文档查看器app吧~ 软件介绍 小米文档查…

MDF文件查看器(SQL MDF Viewer) 1.0 绿色版

当你想查看一个 SQL Server 数据库的 MDF 文件的时候&#xff0c;而你却没有安装 SQL Server &#xff08;那么庞大的一个软件&#xff0c;安装之后想卸载&#xff1f;根本卸载不干静&#xff09;&#xff0c; 那怎么办呢&#xff1f; MDF文件查看器(SQL MDF Viewer) 1.0 绿…

16进制查看器使用

点击任何一个字节&#xff0c;在右边可以看到详细信息。 有什么用&#xff1f;&#xff08;实战&#xff09; 传输文件的时候&#xff0c;看传输的成功与否。 比如我是用socket 传输一个文件&#xff0c;代码写完了&#xff0c;但是最后发现文件损坏&#xff0c;打不开。 …

【实用软件】Json文件查看器(支持查看超大JSON文件)

内容信息 软件类型&#xff1a;绿色 软件平台&#xff1a;电脑 软件版本&#xff1a;v1.0 软件大小&#xff1a;3.4MB 软件特点 Json文件查看器是一个用来查看Json文件的的绿色软件&#x1f618;。 【无惧大小】可以快速打开GB单位的Json文件。 【支持拖拽】人性化设计之一…