• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >CSS > 深入讲解CSS中盒模型的用法

深入讲解CSS中盒模型的用法

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-08-06

本文主要包含CSS,盒模型等相关知识,佚名 希望在学习及工作中可以帮助到您

视觉类型的媒体根据CSS的视觉格式化模型(Visual formatting model)的规则来处理文档树中的元素,从而将(X)HTML转化成制作者设计的样子。


例如:

如何生成元素框;
处理各元素之间的关系;
根据框的尺寸、定位等CSS属性来确定元素的位置等;
因此,要掌握使用CSS控制页面内元素的技巧,就需要深入了解框模型(Box Model)及视觉格式化模型的原理。

文档树中的元素都产生矩形的框(Box),这些框影响了元素内容之间的距离、元素内容的位置、背景图片的位置等等。而浏览器根据视觉格式化模型(Visual formatting model)来将这些框布局成访问者看到的样子。

视觉格式化模型中也有“布局(layout)”的概念,但是这个与页面设计经常用到的类似“3行2列”或者“3行3列”中的“排版布局”的概念不同,视觉格式化模型中的“布局”是指每个元素该如何来显示。

CSS 2.1中,一个控制框的布局可以根据三种定位方案:

常规流向。CSS 2.1中,常规流向包含块框的块格式化,行内框的行内格式化,块框或行内框的相对定位,以及插入框的定位。
浮动。在浮动模型中,一个框首先根据常规流向布局,再将它从流中取出并尽可能地向左或向右偏移。内容可以排列在一个浮动的边上。
绝对定位。在绝对定位模型中,一个框整个地从常规流向中脱离(它对后续的兄弟元素没有影响),并根据包含块来分配其定位。
在理解视觉格式化的概念之前,要明确一点:包含块(Containing Block)是视觉格式化模型的一个重要概念,它也可以理解为一个矩形,而这个矩形的作用是为它里面包含的元素提供一个参考,元素的尺寸和位置的计算往往是由该元素所在的包含块决定的。

框模型(Box model,也译作“盒模型”)是CSS非常重要的概念,也是比较抽象的概念。

文档树中的元素都产生矩形的框(Box),这些框影响了元素内容之间的距离、元素内容的位置、背景图片的位置等等。而浏览器根据视觉格式化模型(Visual formatting model)来将这些框布局成访问者看到的样子。

因此,要掌握使用CSS布局的技巧,就需要深入了解框模型和视觉格式化模型的原理。

浏览器内显示的元素都可以看作是一个装了东西的矩形的盒子,这些矩形的盒子嵌套、叠加或者并列在一起,形成了页面。

提示:“box model”往往被译为“盒模型”。但是盒子是具有厚度的,也就是说盒子是三维的,而框则没有厚度,是二维的,因此本书采用了“框模型”这个译法。

图1显示了每一个元素的“框(Box)”由几部分组成:

内容(content)
例如:文字、图片或者其他元素等,内容也可以看作是一个长方形的框,width(宽度)和height(高度)2个CSS属性设定的就是内容框的宽度和高度。
边框(border)
边框(也译为边界)是可以具体显示出来的,可以设定宽度、外观样式和颜色。
补白(padding)
补白(也译为填充、内边距、内补丁等)是内容框与边框之间的距离,补白部分显示的是背景。
边距(margin)
边距(也译为边白、外边距、外补丁等)是边框外的透明区域,用来设定本元素与其它元素之间的距离。
一个元素框,又有上、右、下、左四个方向的边,如图2所示。

由图2大家可以发现,1个元素所占的区域其实是由几个矩形框组成:元素的内容框、补白形成的框、元素的边框以及边距形成的框。这些框的边缘又有如下定义:

元素内容框的边缘,称为“内容边(content edge)”或“内边(inner edge)”,4条内容边形成“内容框(content box)”。
补白形成的框的外边缘,称为“补白边(padding edge)”,补白边围绕框的补白。如果补白宽度为0,则补白边和内容边重合。4条补白边形成“补白框(padding box)”。
边框形成的框的外边缘,称为“边框边(border edge)”。如果边框宽度为0,则边框边和补白边重合。4条边框边形成“边框框(border box)”。
边距形成的框的外边缘,称为“边距边(margin edge)”或“外边(outer edge)”,边距边围绕框的边距。如果边距宽度为0,则边距边和边框边重合。4条边距边形成“边距框(margin box)”。
内容框的尺寸(宽度和高度)取决于若干个因素,例如:

产生框的元素是否设定了width属性或height属性;
框是否包含文本或其它框;
框是否是一个表格等等。
例如下列代码(查看实例)其内容框与框之间的关系,如图3、图4所示。

  1. * { margin:0; padding:0; color:#666;} /* 清除浏览器默认的样式 */  
  2. div { border:4px solid #F90; background:#FC6;}   
  3. ul { list-style:none; margin:10px; padding:10px; background:#FC6;}   
  4. li { padding : 10px 0 10px 10px; background : #FF9;margin : 15px;}   
  5. .sample { margin-right:0; border:5px dashed #F90;}   
  6. <ul>   
  7.   <li>第1个li里面的示例文字示例文字</li>   
  8.   <li>第2个li里面的示例文字</li>   
  9. </ul>   
  10. <div>ul下面的div</div>  

由图3和图4,我们可以发现:

元素的框宽度 = 左边距(margin-left) + 左边框宽(border-left-width) + 左补白(padding-left) + 内容宽度(width) + 右补白(padding-right) + 右边框宽(border-right-width) + 右边距(margin-right)
元素的框高度 = 上边距(margin-top) + 上边框宽(border-top-width) + 上补白(padding-top) + 内容高度(height) + 下补白(padding-bottom) + 下边框宽(border-bottom-width) + 下边距(margin-bottom)
提示:关于margin在垂直方向重叠的情况,请参见本章[8.9.2.2 边距的重叠]一节。

在IE 5.5及更早的版本,以及在怪异模式中的IE 6.0/7.0中,会错误地将框模型理解为:

width = border-left + padding-left + 内容宽度 + padding-right + border-right
height = border-top + padding-top + 内容高度 + padding-bottom + border-bottom
也就是说,错误的框模型把width和height理解为边框框的宽度和高度,而不是内容框的。(当然,很多人都认为这样的设定更容易计算布局的尺寸。)

例如下列代码:

复制内容到

您可能想查找下面的文章:

  • css小技巧
  • 各大网站CSS初始化代码
  • css权重问题
  • CSS实现鼠标上移图标旋转效果
  • 使用CSS3制作一个简单的进度条(demo)
  • 用纯CSS实现饼状Loading等待图效果
  • 利用CSS3伪元素实现逐渐发光的方格边框
  • CSS3实现内凹圆角的实例代码
  • 利用HTML5+CSS3实现3D转换效果实例详解
  • css3+伪元素实现鼠标移入时下划线向两边展开的效果

相关文章

  • 2017-08-06CSS简单实现重叠线效果
  • 2017-08-06css关于position属性的用法详解(绝对定位和相对定位的混淆)
  • 2017-08-06css 教学实例 漂亮的搜索框
  • 2017-08-06css3的transition属性详解
  • 2017-08-06图解JQUERY对尺寸及位置的定义(图文讲解)
  • 2017-08-06让几个横向排列的浮动子div居中显示的方法
  • 2017-08-06html+css实现登录界面附效果图
  • 2017-08-06CSS实现的灰色下拉菜单效果代码
  • 2017-08-06css3实现input输入框颜色渐变发光效果代码
  • 2017-08-06纯CSS3实现圆角效果(含IE兼容解决方法)

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • IE7与FF下的letter-spacing属性兼容性写法
    • CSS中margin边界叠加问题及解决方案
    • stylus css 框架使用方法深入解析
    • CSS默认可继承样式详解
    • css样式的动态添加及显示和隐藏等零碎用法
    • css vertical-align属性的一些理解与认识(二) text-top篇
    • DIV重叠 CSS让DIV层叠 两个DIV或多个DIV顺序重叠加
    • 使用CSS来扩展增强Input Range的示例
    • css 分页样式代码(基于a或li)绿色与蓝色
    • 深入浅析css3 border-image边框图像详解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有