关于css边框、边距、填充和宽度

关于css边框、边距、填充和宽度,css,width,border,margin,padding,Css,Width,Border,Margin,Padding,玩css边框、边距、填充和宽度时,我遇到了一个额外的像素 我知道元素的总宽度和高度是其宽度、边框、边距和填充的总和 如果你看这个,一切似乎都正常。单击按钮时,将一些像素从边框移动到边距将创建一个伪动画 现在让我们在中设置一个固定的宽度和高度(从:活动中删除宽度和高度):在Firefox和Chrome中,有一个额外的高度和一个额外的宽度像素移动所有相邻元素。在Opera中,有一个额外的宽度和两个额外的高度像素。他们来自哪里 但在这里,将像素从边界移动到填充似乎可以解决所有问题,但伪动画不同 在前两

玩css边框、边距、填充和宽度时,我遇到了一个额外的像素

我知道元素的总宽度和高度是其宽度、边框、边距和填充的总和

如果你看这个,一切似乎都正常。单击按钮时,将一些像素从边框移动到边距将创建一个伪动画

现在让我们在中设置一个固定的宽度和高度(从:活动中删除宽度和高度):在Firefox和Chrome中,有一个额外的高度和一个额外的宽度像素移动所有相邻元素。在Opera中,有一个额外的宽度和两个额外的高度像素。他们来自哪里

但在这里,将像素从边界移动到填充似乎可以解决所有问题,但伪动画不同

在前两个小提琴中,边界被缩小到接近内容;在最后一个例子中,边界被展开的内容缩小


为什么会这样?我遗漏了什么?

出现问题的原因是,当您固定宽度时,例如在100px,带有边框的长方体的宽度将为100px(由于长方体大小属性),因此边距的增加不会通过长方体的缩小来补偿,而当您未设置其宽度时,就会发生这种情况

使用固定宽度,并将框大小设置为边框框,则不应修改边距属性以避免另一个框移动

当然,最简单的解决方法是在内容框设置框大小:


有关css框大小属性的更多信息,请转到。

这是我最近注意到的一个问题:

W3C引入的默认boxmodel是
内容框
,前提是声明了正确的doctype(与Microsoft boxmodel相反,后者可以通过在IEs中使用quirks模式触发)


但是,最近我注意到浏览器有UA样式,它们声明
框大小:border box
(仅适用于输入元素?)。这就是为什么您的技巧不起作用,因为边界计入了宽度。要解决此问题,必须声明
框大小:内容框
。请参阅处理相同的问题。

在第二段后失去了您。。。少说废话,告诉警察就行了problem@Jawad这不是盒子的尺寸。I-love-php打开小提琴,看看发生了什么。@Deneb我真的不明白重点…@GionaF点击元素;请确保更改边框和边距不会导致问题。将输入宽度设置为100px;现在点击。为什么会发生这种情况?@Deneb:那么这毕竟是盒子尺寸。那么这毕竟是盒子尺寸?