CSS calc() 的跨浏览器替代品
Cross-browser alternative to CSS calc()
Opera mini 和 IE 8 不支持 CSS calc
方法。但这是一个非常重要的方法,我无法想象那些浏览器不存在等效的东西.
是否有一种普遍支持的方法可以实现 div 有填充,但也填满整个屏幕?或者有没有办法让这段代码跨浏览器?
html
<div class="this-should-fill-the-whole-screen"></div>
css
.this-should-fill-the-whole-screen {
padding: 20px;
width: calc(100% - 40px);
height: calc(100vh - 40px);
}
Fiddle: http://jsfiddle.net/wfq6xLn5/
对于已经存在解决方案的问题,您无需“滥用”calc
——在这种情况下,该解决方案称为 box-sizing:border-box
。
并且根据http://caniuse.com/#feat=css3-boxsizing,IE 8和Opera Mini 8支持它。
(尽管两者都不会与 vh
单元一起玩 – 但是 calc
也会遇到这个问题。您是否能够替代 100%
对于它,取决于布局的其余部分。)
这是您可以用作解决方案的代码:
<style>
body, html {
padding:0;
margin:0;
height:100%;
}
.this-should-fill-the-whole-screen {
box-sizing: border-box;
padding: 20px;
width: 100%;
height: 100%;
background: blue;
}
</style>
<div class="this-should-fill-the-whole-screen">text</div>
Opera mini 和 IE 8 不支持 CSS calc
方法。但这是一个非常重要的方法,我无法想象那些浏览器不存在等效的东西.
是否有一种普遍支持的方法可以实现 div 有填充,但也填满整个屏幕?或者有没有办法让这段代码跨浏览器?
html
<div class="this-should-fill-the-whole-screen"></div>
css
.this-should-fill-the-whole-screen {
padding: 20px;
width: calc(100% - 40px);
height: calc(100vh - 40px);
}
Fiddle: http://jsfiddle.net/wfq6xLn5/
对于已经存在解决方案的问题,您无需“滥用”calc
——在这种情况下,该解决方案称为 box-sizing:border-box
。
并且根据http://caniuse.com/#feat=css3-boxsizing,IE 8和Opera Mini 8支持它。
(尽管两者都不会与 vh
单元一起玩 – 但是 calc
也会遇到这个问题。您是否能够替代 100%
对于它,取决于布局的其余部分。)
这是您可以用作解决方案的代码:
<style>
body, html {
padding:0;
margin:0;
height:100%;
}
.this-should-fill-the-whole-screen {
box-sizing: border-box;
padding: 20px;
width: 100%;
height: 100%;
background: blue;
}
</style>
<div class="this-should-fill-the-whole-screen">text</div>