搜索
首页web前端html教程你知不知道HTML元素都是装在盒子里的?_html/css_WEB-ITnose

不管你要用HTML显示什么内容,统统都会被放到一个长方形的盒子里。但浏览器呈现给我们的是一个二维世界,二维世界里的盒子跟我们这个世界的盒子不一样。二维世界里的盒子虽然只有宽和高两个维度,但从能装东西这个角度来说,那确实是盒子。

你在浏览器界面上看到的所有HTML元素都是装在盒子里的,不过你可能看不到盒子,要仔细观察才能发现一些蛛丝马迹。而且这个盒子还不止一层,足足有三层,大概是这个样子的:

图一:盒子模型示意图 (源自 Introduction to the CSS box model )

你要显示的内容在最里面,然后外面有一个 padding 层,接下来是 border 层,最外一层叫 margin 。这三层里有可能可以直接看到的只有 border ,其它两层虽然你可以感觉到它们的存在,但从视觉上来说,它们是完全透明的。

在继续往下看之前,先考虑两个问题:

  1. 为什么要搞个盒子?
  2. 这个盒子关我啥事儿?

第一个问题说来话长,如果确实像知道,还是去找制定CSS标准的那帮人,或者做浏览器的聊聊吧。说实话我也不知道为啥。

第二个问题,先假设你要买一套400*100的房子(像素,不是米!),规格说明是这样的:

div {  width: 400px;  height: 100px;  border: 6px solid #949599;   margin: 20px;  padding: 20px;  }

你一看 width 和 height 没问题,就一蹦一跳地去交钱了。结果算账的时候,你发现开发商要跟你收492*192的钱,你是不是想问候他老母?但还没等你开口,他就拿出设计图:

图二、盒子模型设计图(源自 Opening the Box Model )

然后甩给你两个公式:

  • width = margin-right + border-right + padding-right + width + padding-left + border-left + margin-left
  • height = margin-top + border-top + padding-top + height + padding-bottom + border-bottom + margin-bottom

并且还没等你看明白,就拿出计算器一通按,然后笑眯眯地看着你,请你自己看492和192是怎么来的。

  • Width: 492 = 20 + 6 + 20 + 400 + 20 + 6 + 20
  • Height: 192 = 20 + 6 + 20 + 100 + 20 + 6 + 20

简单来说,宽度要把所有横向的数都加起来,不能漏掉 margin 、 border 和 padding 的 left 和 right ;高度要把竖向的所有数都加起来,不能漏掉 margin 、 border 和 padding 的 top 和 bottom 。

所以说,你本来只想放一个400px*100px的图片,但浏览器却要给你492px*192px,如果你毫无心理准备,肯定会有点小激动吧。因此在设计页面时,一定要掌握盒子模型,要知道还有公摊面积这回事儿。不过这里只是简单介绍了一下,要深入了解,可以到两张图片的出处去看一下。

另外,chrome浏览器的开发者工具可以查看所有页面元素的盒子。 这里还有个小程序 ,可以调节几个关键的属性值,你可以直观地感受下。

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
HTML的角色:构建Web内容HTML的角色:构建Web内容Apr 11, 2025 am 12:12 AM

HTML的作用是通过标签和属性定义网页的结构和内容。1.HTML通过到、等标签组织内容,使其易于阅读和理解。2.使用语义化标签如、等增强可访问性和SEO。3.优化HTML代码可以提高网页加载速度和用户体验。

HTML和代码:仔细观察术语HTML和代码:仔细观察术语Apr 10, 2025 am 09:28 AM

htmlisaspecifictypefodyfocusedonstructuringwebcontent,而“代码” badlyLyCludEslanguagesLikeLikejavascriptandPytyPythonForFunctionality.1)htmldefineswebpagertuctureduseTags.2)“代码”代码“ code” code code code codeSpassSesseseseseseseseAwiderRangeLangeLangeforLageforLogageforLogicIctInterract

HTML,CSS和JavaScript:Web开发人员的基本工具HTML,CSS和JavaScript:Web开发人员的基本工具Apr 09, 2025 am 12:12 AM

HTML、CSS和JavaScript是Web开发的三大支柱。1.HTML定义网页结构,使用标签如、等。2.CSS控制网页样式,使用选择器和属性如color、font-size等。3.JavaScript实现动态效果和交互,通过事件监听和DOM操作。

HTML,CSS和JavaScript的角色:核心职责HTML,CSS和JavaScript的角色:核心职责Apr 08, 2025 pm 07:05 PM

HTML定义网页结构,CSS负责样式和布局,JavaScript赋予动态交互。三者在网页开发中各司其职,共同构建丰富多彩的网站。

HTML容易为初学者学习吗?HTML容易为初学者学习吗?Apr 07, 2025 am 12:11 AM

HTML适合初学者学习,因为它简单易学且能快速看到成果。1)HTML的学习曲线平缓,易于上手。2)只需掌握基本标签即可开始创建网页。3)灵活性高,可与CSS和JavaScript结合使用。4)丰富的学习资源和现代工具支持学习过程。

HTML中起始标签的示例是什么?HTML中起始标签的示例是什么?Apr 06, 2025 am 12:04 AM

AnexampleOfAstartingTaginHtmlis,beginSaparagraph.startingTagSareEssentialInhtmlastheyInitiateEllements,defiteTheeTheErtypes,andarecrucialforsstructuringwebpages wepages webpages andConstructingthedom。

如何利用CSS的Flexbox布局实现菜单中虚线分割效果的居中对齐?如何利用CSS的Flexbox布局实现菜单中虚线分割效果的居中对齐?Apr 05, 2025 pm 01:24 PM

如何设计菜单中的虚线分割效果?在设计菜单时,菜名和价格的左右对齐通常不难实现,但中间的虚线或点如何...

在线代码编辑器究竟用什么HTML元素实现代码输入?在线代码编辑器究竟用什么HTML元素实现代码输入?Apr 05, 2025 pm 01:21 PM

网页代码编辑器中的HTML元素分析许多在线代码编辑器允许用户输入HTML、CSS和JavaScript代码。最近,有人提出了一...

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器