在确定元素的宽度或高度时,我们是否在css框模型中包含边距

时间:2016-03-19 07:08:08

标签: css css3

实际上,当我在这些网站上阅读两个不同的内容时,我感到困惑。 我知道盒子尺寸以及它如何影响盒子模型,但是如果我们不考虑尺寸并且想要告诉元素的大小会怎样。请参阅以下网址:

http://www.w3schools.com/css/css_boxmodel.asp

  

元素的总宽度应按如下方式计算:

     

总元素宽度=宽度+左边填充+右边填充+左边   边框+右边框+左边距+右边距

     

元素的总高度应按如下方式计算:

     

总元素高度=高度+顶部填充+底部填充+顶部   边框+底部边框+上边距+下边距

https://css-tricks.com/the-css-box-model/

  

盒子本身的大小计算如下:

     

宽度=宽度+填充 - 左+填充 - 右+边框 - 左+   border-right Height = height + padding-top + padding-bottom +   border-top + border-bottom

我认为根据我的理解,我们计算宽度=宽度+填充+边框作为默认大小调整中元素的总宽度。

1 个答案:

答案 0 :(得分:0)

这就是我在Chrome浏览器中大致看到的内容。

如果设置* {box-sizing: border-box;},则元素的宽度等于width + border + padding。 width值等于devtool中显示的宽度。

元素的宽度(当然)包括子元素的边距,但不包括其自身的边距。 宽度值也等于devtool中显示的宽度。但是您在计算时需要注意保证金崩溃。

但是,如果例如最顶端的元素margin-top折叠,从body中渲染,则多余的空白不会增加devtool中显示的框的元素高度。但是您可以使用document.getElementsByTagName('html')[0].scrollHeight来获取整个高度。

回到您的问题:

  

在确定元素的宽度或高度时,我们是否在CSS盒子模型中包含边距?

我大多会说。

再次使用元素boder-boxwidth == content-width(include margin of element's children) + border + padding