详解CSS 怪异盒模型和标准盒模型

yizhihongxing

详解CSS 怪异盒模型和标准盒模型

盒模型基础知识

CSS的盒模型是用来解释HTML文档中元素的布局的基本概念。任何元素都被认为是一个盒子,盒子由四个部分组成:外边距(margin)、边框(border)、内边距(padding)和内容(content)。

盒子的宽度和高度是由这四个部分的大小及其组成顺序来定义的。

在CSS标准之前,盒模型存在两种不同的模型,它们分别是怪异盒模型和标准盒模型。

怪异盒模型

怪异盒模型(quirks mode)是指在旧版本的浏览器中呈现的盒模型。在这个模型中,盒子的宽度和高度不仅包括内容、内边距和边框,还包括外边距。

怪异盒模型的优点是简单易懂,在早期的网页制作中使用较为广泛。但是,由于怪异盒模型的存在,当我们改变元素的边框、外边距等属性时,会影响到元素的实际宽度和高度,造成了很多问题。

标准盒模型

在CSS标准之后,W3C提出了新的标准盒模型。在标准盒模型中,盒子的宽度和高度只包括内容、内边距和边框,不包括外边距。

这种方式更符合人们的直观感受,也更便于布局和计算元素的大小。

.box {
  width: 100px;
  height: 100px;
  padding: 10px;
  border: 1px solid #000;
  margin: 20px;
}

在标准盒模型中,上述样式中的盒子宽度是 100+2*10+2*1 = 122px,高度是 100+2*10+2*1 = 122px,而在怪异盒模型中,宽度和高度都是 100+2*10+2*1+2*20 = 172px。

如何切换盒模型

我们可以使用CSS的box-sizing属性来切换盒模型。

  • box-sizing: content-box;表示使用标准盒模型,即默认盒子大小只包括内容。
  • box-sizing: border-box;表示使用怪异盒模型,即盒子大小包括内容、内边距、边框和外边距。

以下是两个示例:

示例1

div {
  width: 200px;
  height: 200px;
  padding: 20px;
  border: 10px solid #f00;
  margin: 50px;
  box-sizing: content-box;
}

在此示例中,box-sizing: content-box,表示使用标准盒模型,因此盒子的宽度和高度分别是 200+2*20+2*10 = 260px。

示例2

div {
  width: 200px;
  height: 200px;
  padding: 20px;
  border: 10px solid #f00;
  margin: 50px;
  box-sizing: border-box;
}

在此示例中,box-sizing: border-box,表示使用怪异盒模型,因此盒子的宽度和高度分别都是 200px。

这两个示例可以在浏览器中通过调试工具查看盒子的大小来进行验证。

结论

CSS的盒模型是前端开发中非常重要的基础知识。掌握盒模型的概念和使用方法,能够更好地进行网页布局和调试。在盒模型中,我们常用的是标准盒模型,但是也需要清楚地知道怪异盒模型,并根据需要进行切换。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解CSS 怪异盒模型和标准盒模型 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • jQuery实现图片局部放大镜效果

    首先,我们需要明确几个概念:放大镜效果,鼠标移动事件以及坐标计算。 放大镜效果指的是鼠标悬停在图片上时,在某一区域内看到放大后的图片效果。鼠标移动事件指的是鼠标从一个点移动到另一个点的事件,坐标计算则是指根据鼠标位置计算图片区域的位置和大小。 具体实现步骤如下: 引入jQuery库,并在HTML文档中添加一个div,用于展示放大后的图片效果。 <scr…

    css 2023年6月10日
    00
  • CSS设置网页的字体 防浏览器浏览页面字体变形

    CSS设置网页的字体 防浏览器浏览页面字体变形 在CSS中,可以通过设置字体来控制网页中的文本样式。但是,不同的浏览器可能会对字体进行不同的渲染,导致页面字体变形。本攻略将详细讲解如何设置网页的字体,以及如何防止浏览器浏览页面字体变形。 1. 设置字体 在CSS中,可以通过font-family属性来设置字体。font-family属性可以接受多个字体名称作…

    css 2023年5月18日
    00
  • CSS中使用expression完美设置页面最小宽度(兼容ie)

    使用expression表达式可以在CSS中设置页面最小宽度,从而对兼容IE6、7、8等老旧浏览器的页面展示进行调整。具体步骤如下: 1. 在HTML文件头部引入样式表 <head> <link rel="stylesheet" type="text/css" href="style.css…

    css 2023年6月10日
    00
  • 一个属性border-collapse解决Table的边框问题

    当使用HTML中的table标签创建表格时,常常会遇到边框重叠的问题。一个属性border-collapse可以解决这个问题。 什么是border-collapse border-collapse是CSS中的一个属性,用于设置表格元素边框合并的方式。 默认情况下,HTML中的表格元素的边框会分离,即每个单元格都有自己的边框。如果两个单元格的边框相邻,它们会产…

    css 2023年6月10日
    00
  • css border属性的使用方法和技巧

    CSS Border属性的使用方法和技巧 Border是什么 Border用于设置HTML元素的边框。Border由一个或多个值组成,分别设置边框的宽度、样式和颜色。可以通过CSS的Border属性来设置边框。 Border属性语法 CSS的Border属性语法如下: border: border-width border-style border-colo…

    css 2023年6月9日
    00
  • background-size使用详解

    Background-size使用详解 简介 CSS样式中的background-size属性用于指定一个背景图片的尺寸大小。该属性可接受一个或两个数值作为参数,其中第一个参数为图片宽度值,第二个参数为图片高度值。也可以使用关键字来代替尺寸数值,常用的关键字有:cover和contain。cover会将背景图像缩放到最大尺寸以填充整个容器,而contain则…

    css 2023年6月9日
    00
  • HTML5中5个简单实用的API(第二篇,含全屏、可见性、拍照、预加载、电池状态)

    HTML5作为现代Web开发的基础,提供了众多实用的API接口,为Web应用的开发提供了更多的便利和补充。本篇攻略将介绍HTML5中5个简单实用的API,包括全屏、可见性、拍照、预加载和电池状态。 一、全屏API 全屏API可以让网页全屏展示,提升用户的使用体验。目前已经在所有主流浏览器中被广泛支持。 1. 进入全屏模式 // 获取全屏元素 const el…

    css 2023年6月10日
    00
  • 图像文件格式有哪些以及如何选择

    当我们在创建或处理图像时,选择正确的文件格式非常重要。不同的文件格式对于不同的目的具有不同的优劣。以下是常见的图像文件格式,并对每种格式进行了详细说明,同时也会提供适用于每种格式的示例。 JPEG(Joint Photographic Experts Group) 优点:压缩质量非常高,特别是艺术照片和效果图; JPEG文件格式使用普及率非常广,适合在web…

    css 2023年6月9日
    00
合作推广
合作推广
分享本页
返回顶部