事实上,当我在这些网站上读到两种不同的东西时,我感到困惑。我知道框的大小和它如何影响框模型,但如果我们不考虑大小和想要告诉元素的大小。请参阅以下URL:
http://www.w3schools.com/css/css_boxmodel.asp
元素的总宽度应该这样计算:
元素总宽度=宽度+左填充+右填充+左边框+右边框+左边框+右边框+左边框+右边框
元素的总高度应该这样计算:
元素总高度=高度+顶部填充+底部填充+顶部边框+底部边框+顶部边距+底部边距
https://css-tricks.com/the-css-box-model/
盒子本身的大小是这样计算的:
宽度=宽度+填充-左侧+填充-右侧+边框-左侧+边框-右侧高度=高度+填充-顶部+填充-底部+边框-顶部+边框-底部
我认为根据我的理解,我们计算宽度=宽度+填充+边框作为缺省框大小中元素的总宽度。
下面是我在Chrome中大致观察到的情况。
如果设置*{box-sizing:border-box;}
,则元素的宽度等于width+border+padding
。width值与devtool中显示的width相当。
元素宽度(当然)包括其子元素的边距,但不包括它自己的边距。width值也等同于devtool中显示的width。但计算时需要注意边距收缩。
但是,如果对于exmaple,最顶部元素的margin-top
折叠,呈现出body
之外,那么额外的magin不会增加devtool中显示的框的元素高度。但是可以使用document.getElementsByTagName('html')[0].ScrollHeight
获取整个高度。
回到你的问题:
在确定元素的宽度或高度时,我们是否在css框模型中包含边距?
我通常会说是的。
同样,使用boder-box
,元素的width==content-width(包括元素子项的边距)+border+padding
。
问题内容: 似乎在IE中,宽度包括填充大小。而在FF中,宽度没有。如何使两者的行为相同? 谢谢。 问题答案: IE曾经使用更方便但非标准的 “边框” 框模型。在此模型中,元素的宽度包括填充和边框。例如: 会很宽。 相反,所有违反标准的浏览器都默认使用 “内容框” 框模型。在此模型中,元素的宽度 不 包括填充或边框。例如: 实际上将是宽的:+ 每边填充,+ 每边边框。 如果您使用具有有效标记,良好d
问题内容: 目前,通过STYLE,我可以在和高度上使用和,反之亦然,但是我仍然不能将图像分别限制在一个特定的位置,无论是太宽还是太高。 有任何想法吗? 问题答案: 如果仅在图像上定义一维,则将始终保留图像长宽比。 图像是否比您喜欢的更大/更佳? 您可以将其放入DIV中,该DIV设置为图像所需的最大高度/宽度,然后设置“ overflow:hidden”。那将收获超出您想要的任何东西。 如果图像的宽
问题内容: 当我使用Chrome开发人员工具检查定位标记的大小时,它会向我显示第一个元素和第二个元素。 我想知道为什么它不包含包含元素的高度和宽度以及它是如何计算的。 问题答案: 在CSS 2.1规范说 框内容区域的尺寸(内容宽度和内容高度)取决于几个因素:生成框的元素是否设置了“宽度”或“高度”属性,该框是否包含文本框或其他框,是否框是一个表格,等等。框的宽度和高度将在有关可视格式模型详细信息的
我需要图像采取容器的整个宽度,除非结果的高度大于可用容器的视口高度。 基本上,我希望图像是响应性的,但它应该仍然适合屏幕。如果它不适合屏幕,它应该缩小,水平居中,最好在它的侧面添加黑色瓷砖。 当前,我的CSS类看起来是这样的: 我试着在图像或专用容器上使用max-height,但纯CSS似乎无法实现此功能。 澄清: 我事先不知道图像的尺寸,所以不能将它们放入一个预设大小的容器中。 基本上,我的目标
我想增加高度但不是宽度的大小。下面的代码增加高度和宽度。 我试着用下面的代码,但它不起作用 这两个都不工作。请任何人帮助我增加面板高度的大小
问题内容: 我有一组元素,要求它们的最小宽度等于它们的高度,但是高度没有明确设置。目前,我可以通过jQuery 设置css 属性来实现此目的: 是否可以直接在CSS中指定此行为? 问题答案: 我不相信没有JS,这是不可能的,但是也许有人可以证明我错了? CSS不允许您使用动态变量,因此,如果在页面加载之前未设置高度,我不确定该怎么做。