我的页面由宽度和高度设置为auto的元素组成,其尺寸使用left,right,top和bottom属性定义。加载页面时,浏览器应将所有宽度和高度设置为其计算值。但是,当我将元素的最小宽度设置为它们各自的计算宽度时,每个元素都会扩展2px。如果我将其最小高度设置为等于计算的高度,则会发生同样的情况。我用jQuery做这个,就像这个
element.css('min-width', element.css('width'));
或
element.css('min-width', element.width());
效果与应有的完全相同,但如果我理解正确发生的事情,则不应该有额外的2px。使用
element.css('min-width', element.width() - 2);
完全解决了这个问题,但我不喜欢不理解为什么会有额外的2px。根据规格,宽度,最小宽度和最大宽度都不应包括填充,边框或边距。
我在Chrome和FF中进行了测试,两者的行为方式相同。
答案 0 :(得分:0)
您正在测试哪种浏览器,并且您的文档是否在quirksmode中?
element.css('min-width', element.width());
不应该在标准模式下执行任何操作,因为element.width()
返回没有CSS单位的整数,min-width
需要标准模式中的单位。
因此,请将您的文档置于标准模式,然后尝试:
element.css('min-width', element.width() + "px");
如果这没有帮助,你需要展示一个有效的例子。