`

CSS 盒模型

 
阅读更多
整理自:The CSS Box Model

中文:CSS 盒模型


CSS 盒模型

网页设计中的每个元素都是长方形的盒子。 盒子的尺寸是怎样精确计算的,请看下图:

thebox

如果是 Firebug 用户的话(基本和前端有关的都会用到 Firebug 吧 – 糖伴西红柿),就会很熟悉下面的图表了。
这个图表很好地展示了作用于页面上任意盒子的数值。

firebug

注意以上两个例子中,margin 都是白色的。Margin 比较特别,它不会影响盒子本身的大小,但是它会
影响和盒子有关的其他内容,因此 margin 是盒模型的一个重要的组成部分。

盒子本身的大小是这样计算的:

Width width + padding-left + padding-right + border-left + border-right
Height height + padding-top + padding-bottom + border-top + border-bottom

值未声明的情况

如果未声明 padding 或者 border,那他们或者值为零(使用 css reset 时),或者为浏览器的默认值(很可能不是零,尤其是那些通常没有重置的表单元素)

块级盒的默认宽度

如果未声明宽度,并且盒子是静态或者相对定位的,宽度会保持 100%的 宽度,padding 和 border 会向内推动,而不是向外扩展。

但是,如果明确设置盒子的宽度为 100%,那么 padding 就会向外延展。

weird

The lesson here being that the default width of a box isn’t really 100% but a less tangible “whatever is left”. This is particularly valuable to know, since there are lots of circumstances where it is immensely useful to either set or not set a width.

要注意的是,盒子的默认宽度并不真的是 100%,而是剩下的可能值(应该是说,剩余真实存在的宽度 - 糖伴西红柿)。应该了解这个特殊值,因为很多情况下,它对于设置/不设置宽度都是非常有用的。

我遇到的最大的麻烦就是 textarea(文本框) 元素了,它们需要设为宽度为所需的”cols”属性,并且不能包含子元素。因此通常需要明确的设置 textarea 的宽度为 100%,但有 padding 时,就会延展 textarea 的宽度。固定宽度环境下,通常可以设置为合适的像素值宽度,但是变宽情况就没那么幸运了。

无宽度的绝对定位盒子

未设定宽度的绝对定位的盒子的表现有点不一样。它们的宽度只需要适合它们所包含的内容即可。因此,如果盒中只有一个单词,盒子就会像那个词的表现一样宽。如果变成两个词,盒子的宽度也会相应增加。

abs-width

这种情况会持续到盒子的宽度达到父元素宽度的 100%(最近的相对定位的父元素或者浏览器窗口),然后就会折行。

对盒子来说,垂直扩展以适应包含的内容是很自然的。值得奇怪的是,不仅仅是不同平台下的文本表现不同,不同的浏览器处理这个问题时,也有很多怪癖。

text-render-abs

无宽度浮动盒子

同无宽度的绝对定位盒子的表现一样。盒子的宽度只需要扩展到所包含内容的宽度,直到其父元素的宽度(其父元素不必是相对定位的)。由于这些无宽度盒 子的脆弱性,我们要学到的是关键任务模式的时候它们是不能依赖的,像总体页面布局中。如果浮动一列作为侧边栏使用,并指望那些内部元素(如图片)来负责包 含它的宽度,你就是在自找麻烦。

内联元素也是盒子

我们这里一直把重点放在块级元素的盒子上。很容易就可以把块级元素想象为盒子,但是内联元素也是盒子。可以把他们想象为非常长而窄的长方形,它们也可以像其它盒子一样有 margin, padding he border

span

折行使它看起来有些不好理解。如上所示的左 margin 把盒子推向右边,但是只在第一行有效,因为那是盒子的起点。padding 正常的应用在文本的上部或下部,当折行时它会忽略上面行的 padding 并且以行高(line-height)要求的位置作为起点。透明背景是为了让效果看起来更清楚。

亲眼目睹一下

想看看组成页面的每个单独的“盒子”吗?试着把这行代码暂时放入样式表:

	* {
   		border: 1px solid red !important;
	}

all-is-a-box

VN:F [1.6.1_878]

<!-- post paging--> <!-- Post Meta-->

分享到:
评论

相关推荐

    CSS+盒模型,css盒模型面试题,HTML源码.zip

    **CSS盒模型** 在网页设计中,CSS(层叠样式表)盒模型是理解布局的基础。它描述了HTML或XML元素如何占据空间并相互影响。盒模型由元素的内容区域、内边距(padding)、边框(border)以及外边距(margin)组成,...

    css 盒模型整理

    **CSS盒模型详解** 在网页设计中,CSS(Cascading Style Sheets)盒模型是理解元素布局的关键。盒模型描述了HTML或CSS元素如何占据空间并与其他元素交互。这个概念对于精确控制页面布局至关重要,特别是在响应式...

    css盒子模型

    CSS盒子模型有两种类型:W3C标准盒子模型和IE盒子模型(也称为怪异盒模型)。在标准模型中,元素的总宽度和高度等于内容区域加上内边距和边框;而在IE模型中,总尺寸仅包含内容区域,内边距和边框被加到了总宽度和...

    CSS盒模型PPT

    这是一个CSS的PPT CSS 盒模型,主要介绍CSS中的盒模型

    CSS+盒模型,css盒模型面试题,HTML

    **CSS盒模型详解** 在网页设计与开发中,CSS(层叠样式表)盒模型是理解元素布局和尺寸计算的关键概念。盒模型定义了元素如何占据空间,包括内容区域、内边距、边框和外边距。了解CSS盒模型对于优化页面布局和解决...

    CSS盒模型的应用知识介绍,基础的CSS盒模型教学

    ### CSS盒模型的应用知识介绍与基础教学 #### CSS盒模型概念 CSS盒模型(CSS Box Model)是一个核心的概念,它定义了元素如何在网页中呈现以及元素之间如何相互作用。简单来说,每个HTML元素都可以被视为一个矩形...

    css盒模型.docx

    CSS 盒模型详解 CSS 盒模型是 HTML+CSS 中最核心的基础知识之一,它规定了网页元素如何显示以及元素间相互关系。CSS 盒模型是由 content(内容区)、padding(填充区)、border(边框区)和 margin(外边距区)四个...

    CSS盒子模型.rar

    虽然W3C标准定义了盒子模型,但早期的IE浏览器(尤其是IE6和IE7)采用了一种不同的实现,称为“怪异盒模型”。这导致了跨浏览器的布局问题。为解决这个问题,可以使用`*{box-sizing:border-box}`进行全局设置,使...

    CSS盒子模型的应用

    - **盒模型在流体布局中的应用**:通过调整元素的盒子模型属性,我们可以实现响应式设计,使页面在不同屏幕尺寸下仍能保持良好的布局。 - **盒模型与浮动元素**:在使用float属性时,盒子模型可以帮助我们控制元素间...

    CSS盒子模型结构

    总结:深刻理解盒模型是学习 div+css 的基础,是网页布局的前提。只有牢固掌握盒子模型的结构和原理,才能在网页布局中游刃有余。 因此,在学习 div+css 时,一定要重视盒子模型的学习,掌握盒子模型的组成部分、...

    CSS盒子模型 图片演示

    在CSS3中,还引入了盒模型的两种模式:W3C标准盒模型和IE盒模型(也称为怪异盒模型)。W3C标准盒模型中,元素的width和height只包括内容区,而IE盒模型则包括内容区、内边距和边框。为了避免浏览器之间的兼容性问题...

    彻底弄懂CSS盒模型

    【彻底弄懂CSS盒模型】 CSS盒模型是前端开发中至关重要的概念,它定义了网页元素如何占据空间和相互布局。CSS盒模型由四个部分组成:内容(content)、内边距(padding)、边框(border)和外边距(margin)。理解盒模型...

    21.4 CSS 盒子模型

    CSS盒子模型有两种不同的解析方式:标准盒模型(W3C Box Model)和IE盒模型(IE Quirk Mode)。在标准盒模型中,元素的总宽度和高度计算公式为:内容宽度/高度 + 内边距左右/上下 + 边框左右/上下 + 外边距左右/上下...

    css 盒子模型彻底解析

    W3C标准盒模型中,元素的宽度和高度仅包含内容区域,不包括内边距和边框,而在IE盒模型中,元素的宽度和高度包含了内容、内边距和边框。 理解CSS盒子模型有助于实现更加灵活和响应式的网页设计。例如,通过调整内...

    彻底弄懂CSS盒模型 Box Model

    【彻底弄懂CSS盒模型 Box Model】 在网页设计中,CSS盒模型是理解网页布局的基础。这个模型描述了网页元素如何占用空间并与其他元素交互。盒模型包括四个关键部分:内容(content)、内填充(padding)、边框...

    css盒模型css盒模型

    CSS盒模型是网页布局的基础,它定义了网页元素如何占据空间和相互影响。在CSS中,每个元素都被视为一个矩形框,这个框由四个部分组成:内容(content)、内填充(padding)、边框(border)和外边界(margin)。 1. 内容...

    CSS盒模型详细解析

    详细分析了css盒模型 希望对大家有帮助

    CSS盒子模型详解与实操技巧

    适用人群:适合希望深入了解和熟练掌握 CSS 盒模型细节的设计新手与有一定经验的 Web 开发人员。 使用场景及目标:① 使学习者能够理解和灵活运用各个 CSS 盒子组件进行页面布局的设计和美化;② 能解决网页构建中...

    CSS盒子模型详析与实践教程

    内容概要:全面讲解了CSS盒模型的各项属性及其应用方法,从外边距(margin),内边距(padding),宽度和高度(width/height), 内容(content), 边框(border), 圆角(border-radius), 盒子阴影(box-shadow), 到外边距合并...

Global site tag (gtag.js) - Google Analytics