CSS箱体模型

134 阅读6分钟

DZone>Web Dev Zone>CSS盒状模型

CSS盒状模型

盒状模型是CSS中最重要的部分之一。让我们来看看它是如何工作的。

Johnny Simpson user avatar通过

约翰尼-辛普森

-

1月26日,22 - Web Dev Zone -教程

喜欢 (3)

评论

保存

鸣叫

2.47K浏览次数

加入DZone社区,获得完整的会员体验。

免费加入

CSS盒状模型是一个在CSS中随处可见的术语,但它可能是你在CSS中所能知道的最基本的东西。简单地说,盒子模型决定了页面上任何对象的大小、边距和填充。它还指的是CSS处理 "内联 "和 "块 "内容的奇怪方式。

盒子模型

在HTML中,每个元素都会创建一个盒子。其中一些元素,如spanp内联的,这意味着它们与文本保持一致,而不是页面的结构元素。

其他元素,如div 是大型的 "块 "元素。每个元素都有不同的类型,所以在学习HTML和CSS时,熟悉这些元素是很有用的。

块状元素有一个固定的宽度和高度,有时会横跨整个页面,而内联元素是在文本行中的,这意味着它们有内容漂浮在旁边。另一种类型的块是内联块,从字面上看,它是一个具有固定宽度和高度的块,位于内联环境中,比如文本中。

无论一个元素是内联还是块状,所有元素都有一些核心的 "框 "属性。这些属性在下面的图表中显示。

  • margin是指一个HTML元素外面(周围)的空间。
  • border是指元素周围的线条,包括padding和宽度/高度。
  • padding是文本和元素边缘的空间。
  • 宽度高度只指其中的空间,不包括padding。

盒状模型属性

CSS盒状模型有5个主要属性,所有这些属性都可以单独定义。下面是一个应用了所有CSS盒状模型属性的div。

CSS

div {
    width: 100px;
    height: 100px;
    padding: 10px;
    border: 2px solid black;
    margin: 5px;
}

对于paddingmargin ,我们也可以在同一行中分别指代每一面。在CSS中,当我们引用每个面时,顺序是上、右、下、左。请看下面的例子。

CSS

div {
    /*  top side padding: 10px
        right side padding: 20px
        bottom side padding: 5px
        left side padding: 10px
    */
    padding: 10px 20px 5px 10px;
}

我们也可以通过使用属性padding-top,padding-right,padding-bottompadding-left 来直接呼出这些。margin也存在完全相同的属性,即

CSS

div {
    margin-left: 20px;
}

快速案例分析

让我们再思考一下盒子模型的工作原理。我们创建一个新的div ,并给它一个40px的宽度,20px的padding和2px的border,如下图所示。我们还添加了4px的边距。

CSS

div {
    width: 40px;
    padding: 20px;
    border: 2px solid black;
    margin: 4px;
}

这个盒子有多大?

由于宽度是40px,填充是20px,边框是2px,所以页面上呈现的总宽度实际上是84px!

再解释一下,图中所示的宽度是不包括padding的宽度。既然我们说padding 是20px,那么CSS就在盒子的所有边上加20px。这意味着左边是20px,右边是20px,总共是40px。当我们把它加到我们的宽度上时,我们得到了80px。

最后,我们在整个div周围有2px的边框,也就是左边2px,右边2px。结果是40px+40px+4px,即84px

显示

CSS还有一个叫做display的属性,除其他外,它可以让你隐藏一个项目。显示会影响盒子模型,通过定义一个对象是block 还是inline 。为了盒子模型的目的,让我们考虑一下几个关键属性。

  • none- 该项目被隐藏。
  • inline- 该项目是内联的,即与文本内联,它不能被添加宽度或高度。
  • block- 该项目是块状的,也就是说,它占据了整个宽度并在新的一行开始。
  • inline-block- 该项目与文本同列,但可以在CSS中为其添加宽度和高度。
  • contents- 该项目被显示,就像它的容器不存在一样,并被添加到上面的容器中。

CSS盒状模型显示属性的一个例子

让我们来看看一个快速的例子。下面的代码是一个span,它被设置为块状显示。通常,span是一个内联元素,所以这一行CSS将改变它在页面上的行为。注意,在默认情况下,该元素是内联的,宽度和高度没有被应用。

CSS

span {
    display: block;
    width: 100px;
    height: 30px;
    padding: 10px;
}

框的大小

CSS分别管理填充、宽度和边框的方式一直是CSS社区的一个争论点。因此,我们创建了一个属性来解决这个问题,称为box-sizing 。框的大小让我们可以覆盖这一默认行为。

让我们想一想,我们的40px宽度的盒子最后变成了84px宽。我们可以将框的大小设置为。

  • border-box: 宽度包括边框和padding。现在我们的总宽度将是40px,即使有填充和边界。
  • content-box:默认行为,宽度不包括边框和padding。现在我们的总宽度将是84px。

现在我们有了更多的控制权,可以肯定地设置我们的宽度,它们会按照我们期望的那样显示在页面上。

边框

边框是我们可以影响盒子模型的另一种方式。边框可以定义为环绕整个元素,也可以定义在特定的一侧,使用border-topborder-rightborder-bottomborder-left 。下面是一个例子。

CSS

div {
    border: 1px solid red;
    border-top: 2px solid black;
}

一个边框属性也可以被分割成不同的行。1px solid red ,可以写成。

CSS

div {
    border-width: 1px;
    border-color: red;
    border-style: solid;
}

同样地,我们可以将这些应用于单个侧面,即:border-top-width,border-top-colorborder-top-style 用于顶面。我们可以对任何一面这样做。

颜色接受任何颜色,你可以在颜色部分了解更多关于颜色的信息。border-style 属性接受以下值。无、隐藏、点、虚线、实线、双线、槽、脊、嵌入、外置

边框半径

最后,border-radius可以让我们为我们的div添加圆形的边缘。注意,这并不影响盒子模型,所以元素的大小保持不变,但它确实影响了它的美感。它接受任何单位--但我在下面使用像素作为例子。单位越大,四舍五入就越大。下面是一个关于它的外观的代码例子。

CSS

div {
    border-radius: 20px;
}

总结

这就是你需要了解的关于盒子模型的一切。如果你对测试你的知识感兴趣,我还做了一个小测验,你可以在这里查看。谢谢你的阅读。

主题。

css, css3, web开发, 教程, 盒子模型

经Johnny Simpson授权发表于DZone,DZone MVB。点击这里查看原文。

DZone贡献者所表达的观点属于他们自己。

DZone上的热门文章


评论

网络开发 合作伙伴资源