我有一个div,我想为其指定FIXED宽度和高度,以及一个可以更改的填充,而无需减小原始DIV宽度/高度或增加它,是否有CSS技巧或使用填充来替代?
Answers:
解决方案是用固定宽度的外部div包装填充的div
的HTML
<div class="outer">
<div class="inner">
<!-- your content -->
</div><!-- end .inner -->
</div><!-- end .outer -->
的CSS
.outer, .inner {
display: block;
}
.outer {
/* specify fixed width */
width: 300px;
padding: 0;
}
.inner {
/* specify padding, can be changed while remaining fixed width of .outer */
padding: 5px;
}
在CSS中声明这一点,您应该会做得很好:
* {
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
无需使用其他包装即可实现此解决方案。
这将迫使浏览器根据div的“外部”宽度计算宽度,这意味着将从宽度中减去填充。
听起来您正在模拟IE6盒子模型。您可以使用CSS 3属性box-sizing:border-box实现此目的。IE8支持此功能,但对于Firefox,您需要使用-moz-box-sizing
;对于Safari / Chrome,请使用-webkit-box-sizing
。
IE6已经计算出错误的高度,因此您在该浏览器中表现不错,但是我不确定IE7,我认为它会在怪癖模式下计算高度。
试试这个技巧
div{
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
这将迫使浏览器根据div的“外部”宽度计算宽度,这意味着将从该宽度中减去填充。