Web布局: CSS 盒模型


在学习Web布局之前有一个非常重要的概念需要理解,这个概念就是盒模型。CSS盒模型是多个不同的CSS规则集合,定义了如何渲染Web页面。这一系列的不同的属性决定了HTML元素在页面上的位置。到目前为止,所有Web页面都只是一个接一个渲染的元素。可以说盒模型是我们定制默认布局方案的工具包。

作为Web开发人员,大部分工作是将应用CSS盒模型中的规则将设计模型转换为Web页面(简单点说,就是UI还原)。接下来要介绍的CSS盒模型又被视为UI还原的重中之重,因为它定义了盒子的单独行为。特别是在以后的章节中,我们学习的各种布局都将会围绕着HTML的结构和CSS的盒模型一起来展开。

基础盒模型介绍

在CSS中,一切都会生成一个框。而Web页面的本质上是一组块和内联框。如果在浏览器中使用开发者工具查看一个HTML中的元素,就可以很好的理解这些框。而这些框却是一组CSS规则的集合。主要用于确定页面中每个元素的尺寸。

这个框体描述了元素在Web布局中所占的空间。因此元素之间涉及到位置和尺寸是会相互影响的。作为CSSer要彻底了解这些属性规则之间是如何相互影响的话,有一些理论和概念就很有必要了解清楚。

块元素和内联元素

任何一个Web页面都会有很多种不同的HTML元素组成,这也是众所周之的。前面我们也提到过,任何一个HTML元素都是一个框(盒子),这些框主要有两种类型,内联框。其对应的即是HTML中的块元素和内联元素。

  • 块框:如果不做任何的处理,其宽度会占满容器的整个宽度(或高度),而高度(或宽度)由元素内容决定,比如divpli等元素都是块元素,而这些块元素在Web上渲染出来的框就是块框
  • 内联框:如果不做任何的处理,其宽度和宽度都由内容来决定,比如spanstrongem等元素都是内联元素,而这些元素在Web上渲染出来的框就是内联框

用张图来描述,可能更易于理解:

这仅仅是常规的理解。

时至今日,CSS也有了较大的变化,而渲染也有着相应的变化。在块框和内联框和书写模式(writing-mode)有着紧密的联系。

对于块元素(块盒子)而言,如果书写模式是水平方向horizontal-tb,那么块是从上往下流;而书写模式是垂直方向horizontal-lr时,那么块是从左向右流。如下图所示:

对于内联元素而言,它会按照当前上下文、书写模式和方向进行布局。它们的宽度取决于它们的内容,并且在任何有空间的地方相邻放置。如下图所示:

简而言之,块元素遵循流方向,内联元素遵循写入方向

块轴和内联轴

块元素和内联元素是CSS中框模式中最基本的两种。而在Web的世界中还有坐标轴的概念,Web的坐标主要有两个轴,即:

  • x:水平方向的坐标轴
  • y:垂直方向的坐标轴
剩余80%内容付费后可查看 本部分为付费内容,支付后可查看 支付4.99元 已支付?输入手机号查看 包月会员登录 购买包月会员推荐