Alternative to CSS Calc
The CSS calc() function provides a convenient way to perform mathematical calculations within CSS rules. However, for legacy browsers and some mobile browsers, its support is limited. This article explores an alternative approach to achieve dynamic sizing without using calc(), particularly targeting IE 5.5 and higher, Opera, and the Android browser.
While the expression() property can be used in IE-OLD to support calc-like syntax, it is deprecated and security concerns arise with its usage. Instead, consider adopting the CSS box-sizing property with the border-box value. This approach involves using padding and margin, rather than subtracting from the width property, to achieve the desired dimensions.
For instance, let's take the example provided in the original question, where a sidebar with a fixed width affects the width of adjacent content. Instead of using width: calc(100% - 300px) on the content element, we can achieve the same effect with the following code:
.sideBar { position: absolute; top:0; left:0; width: 300px; } .content { padding-left: 300px; width: 100%; -moz-box-sizing: border-box; box-sizing: border-box; }
By setting box-sizing: border-box, the element's width includes its padding and border, rather than treating them as additional space outside the element's box model. This allows the padding-left to effectively reduce the usable width of the content element without affecting its actual width as declared in the CSS.
This approach is not only supported in IE 5.5 and higher, but also in Opera and the Android browser, providing a consistent solution across a wide range of browsers.
The above is the detailed content of How Can I Achieve Dynamic Sizing Without Using CSS Calc() in Older Browsers?. For more information, please follow other related articles on the PHP Chinese website!