iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >CSS中margin-box怎么用
  • 282
分享到

CSS中margin-box怎么用

2024-04-02 19:04:59 282人浏览 薄情痞子
摘要

小编给大家分享一下CSS中margin-box怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!盒尺寸(Box dimensi

小编给大家分享一下CSS中margin-box怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

盒尺寸(Box dimensions)的4个盒子

盒尺寸由4个盒子组成,分别是content boxpadding boxborder boxmargin box。这个和盒模型中的几个盒子其实是对应的。

CSS中margin-box怎么用

这是他们在规范中的称呼,当规范落地到CSS语言层的时候,每个盒子都起了一个对应的名字,如下:

content box写做content-box
padding box写做padding-box
border box写做border-box
margin box写做margin-box

因此,理论上,box-sizing可以有这么些写法:

.box1 { box-sizing: content-box; }
.box2 { box-sizing: padding-box; }
.box3 { box-sizing: border-box; }
.box4 { box-sizing: margin-box; }

理论美好,现实残酷,实际上,支持情况如下:

.box1 { box-sizing: content-box; } .box2 { box-sizing: padding-box; } .box3 { box-sizing: border-box; }  .box4 { box-sizing: margin-box; }

margin-box被无情的抛弃了,好惨!

然而,这不是最惨的,更惨的是margin-box在整个CSS世界中都被抛弃了,没错,至今为止,CSS中没有任何属性支持margin-box,比padding-box要惨的多,虽然padding-boxbox-sizing属性中要被抛弃,但是人家依然受到background-clip属性的青睐。但是margin-box完全就无人问津。

于是,难免让人疑惑,同样都是盒子,为何就margin-box不支持呢?

为何box-sizing不支持margin-box?

网上有这样的说法,说margin在垂直方向有合并重叠特性,如果支持了margin-box,合并规则就要发生变更,会比较复杂。我对此观点不敢苟同,其实当下很多属性可以灭掉margin合并,多一个box-sizing又何妨,且浏览器产商实现不难的,跟之前的规范也不冲突。

  1. 其实,我个人认为,不支持margin-box最大的原因是本身就没有价值!我们不妨好好想想,一个元素,如果我们使用width或height设定好了尺寸,请问,我们此时设置margin值,其offset尺寸会有变化吗?不会啊,亲们,100像素宽的元素,你再怎么设置margin,它还是100像素宽。但是,borderpadding就不一样了,100像素宽的元素,设置个20像素大小的padding值,offsetWidth就是140像素了,尺寸会变化。

    你说,一个本身并不会改变元素尺寸的盒子,它有让box-sizing支持的道理吗?box-sizing就是改变尺寸作用规则的!

    这就好比一个已经绝经的大妈,有必要给她吃避孕药吗?

    margin只有在widthauto的时候可以改变元素的尺寸,但是,此时元素已经处于流动性状态,根本就不需要box-sizing

    所以,说来说去就是margin-box本身就没有价值。

  2. 还有一个可能的原因就是使用场景需求。box-sizingmargin-box效果,如果是IE10+浏览器,可以试试flex布局,如果要兼容IE8+可以使用“宽度分离”,或者特定场景下使用“格式化宽度”来实现,也就是并不是强需求。比方说box-sizing:padding-box,就是因为使用场景有限,就FireFox浏览器支持,并且是曾经支持,从版本50开始也不支持了。

    其实,我个人觉得没必要舍弃,浏览器都应该支持,就像background属性那样。成为套餐不挺好的。

为何background-origin/background-clip不支持margin-box?

这个其实很好解释,“margin的背景永远是透明的”这几个大字可是在规范写得清清楚楚的!

The background style of the content, padding, and border areas of a box is specified by the ‘background’ property of the generating element. Margin backgrounds are always transparent.

假如说,例如,background-clip支持margin-box,是不是就意味着背景色背景图片之类的可以在margin-box这个盒子上显示,那岂不意味着“margin的背景不是透明的”!显然和规范冲突了,我们可以打自己的脸,但是要想让规范打自己的脸,可能吗?

以上是“CSS中margin-box怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网JavaScript频道!

--结束END--

本文标题: CSS中margin-box怎么用

本文链接: https://www.lsjlt.com/news/92809.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • CSS中margin-box怎么用
    小编给大家分享一下CSS中margin-box怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!盒尺寸(Box dimensi...
    99+
    2024-04-02
  • css中box-sizing怎么用
    这篇文章主要为大家展示了“css中box-sizing怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“css中box-sizing怎么用”这篇文章吧。box...
    99+
    2024-04-02
  • css中margin怎么用
    css 中 margin 属性用于控制元素周围的空白区域,包括上下左右四个方向,语法为 margin: [ [ []]。 CSS 中 margin 的用法 margin 属性用于控制...
    99+
    2024-04-26
    css
  • css中box-ordinal-group属性怎么用
    这篇文章主要为大家展示了“css中box-ordinal-group属性怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“css中box-ordinal-gr...
    99+
    2024-04-02
  • CSS中margin属性怎么使用
    CSS中margin属性怎么使用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。CSS中margin问题及使用margin为CSS中非常常用的一...
    99+
    2024-04-02
  • css中的box-pack属性怎么用
    这篇文章主要为大家展示了“css中的box-pack属性怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“css中的box-pack属性怎么用”这篇文章吧。 ...
    99+
    2024-04-02
  • css中的box-sizing属性怎么用
    这篇文章主要为大家展示了“css中的box-sizing属性怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“css中的box-sizing属性怎么用”这篇文...
    99+
    2024-04-02
  • css中的margin属性怎么用
    小编给大家分享一下css中的margin属性怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!   一:cssmargin属...
    99+
    2024-04-02
  • CSS中的margin属性怎么使用
    今天小编给大家分享一下CSS中的margin属性怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。CSS中margin属...
    99+
    2023-07-04
  • css中margin重叠怎么办
    这篇文章主要为大家展示了“css中margin重叠怎么办”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“css中margin重叠怎么办”这篇文章吧。父子元素mar...
    99+
    2024-04-02
  • css的margin-left怎么使用
    这篇文章主要介绍“css的margin-left怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“css的margin-left怎么使用”文章能帮助大家解决问题...
    99+
    2024-04-02
  • CSS中margin边外距属性怎么用
    这篇文章主要为大家展示了“CSS中margin边外距属性怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“CSS中margin边外距属性怎么用”这篇文章吧。 ...
    99+
    2024-04-02
  • CSS的margin属性怎么用
    这篇文章主要介绍“CSS的margin属性怎么用”,在日常操作中,相信很多人在CSS的margin属性怎么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”CSS的margin...
    99+
    2024-04-02
  • css的margin-top怎么使用
    这篇文章主要介绍“css的margin-top怎么使用”,在日常操作中,相信很多人在css的margin-top怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”css的...
    99+
    2024-04-02
  • box在css中的用法
    css 中的 box 模型是一个框架,用于控制元素的大小、边框和间隔。它由内容、填充、边框和外边距四部分组成,并提供 width、padding、border 和 margin 等属性进...
    99+
    2024-04-28
    css
  • CSS中margin和padding属性怎么使用
    这篇文章给大家介绍CSS中margin和padding属性怎么使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。CSS教程:详解margin和padding属性应用场合margin和p...
    99+
    2024-04-02
  • css中margin外边距属性怎么用
    这篇文章给大家分享的是有关css中margin外边距属性怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。   css中margin属性即css外边距属性的具体用法代码示例:...
    99+
    2024-04-02
  • CSS的margin-top和margin-bottom属性怎么使用
    这篇“CSS的margin-top和margin-bottom属性怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“CS...
    99+
    2023-07-04
  • CSS中怎样使用margin属性
    这篇文章将为大家详细讲解有关CSS中怎样使用margin属性,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、Margin的特性margin始终是透明的。margin通过...
    99+
    2024-04-02
  • css中box-sizing属性有什么用
    这篇文章主要介绍css中box-sizing属性有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在了解box-sizing之前,让我们来稍稍回顾一下盒子模型,模型分为:标准盒模...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作