box-sizing: border-box => for IE8?
i want box-sizing: border-box for div tag.
For Mozila Firefox i have tried
-moz-box-sizing: border-box;
For IE(Internet Explorer) i have tried both of below alternatively
-ms-box-sizing: border-box; box-sizing: border-box;
but it couldn't works in IE(Internet Explorer). Though i have apply box-sizing: border-box; for Internet Explorer it adds with of border and padding in width of element. why does it happen?
what should be the problem? please help and sugest me.
NOTE: i am using Internet Explorer8 and Windows7 ultimate
PAGE CODE:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="MainPage.aspx.cs" Inherits="MainPage" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="x-ua-compatible" content="IE=8"/> <title></title> <style type="text/css"> * { box-sizing: border-box; /*it gives error:Validation (CSS 2.1): 'box-sizing' is not a known CSS property name. */ -ms-box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; } body { background: lightblue; color: #000000; font-family: Trebuchet MS, Arial, Times New Roman; font-size: 12px; } #header { background: #838283; height: 200px; width: 1200px; } #wrapper { background: #FFFFFF; margin: 0px auto; width: 1200px; height: 1024px; } #navigation { background: #a2a2a2; float: left; margin: 0px 0px; width: 1200px; height: 25px; padding: 3px; } </style> </head> <body> <form id="form1" runat="server"> <div id="wrapper"> <div id="header"> <h1> Header goes here</h1> <br /> <h2 style="font-size: 60px;"> ST ERP by Shanti Technology</h2> </div> <div id="navigation"> </div> </div> </form> </body> </html>
Answers
IE8 supports the unprefixed version of box-sizing, but as with all "new" CSS features it only does so in standards mode. -ms-box-sizing has never been used by any version of IE.
Make sure your page has a doctype declaration to trigger standards mode in browsers. You should also place your unprefixed box-sizing after all the prefixes, not before them, and get rid of -ms-box-sizing as it's really not needed.
If you are using min-width or min-height as well, box-sizing will be stuck as "content-box" in IE8 (Standards mode), i.e. specifying border-box will have no effect.
IE8+ supports box-sizing.
Support:
Opera 8.5+ : box-sizing Firefox 1+ : -moz-box-sizing (still prefixed, though some are pushing to have it unprefixed for [Firefox 29][2]). Safari 3 : -webkit-box-sizing (unprefixed in modern versions) IE8+ : box-sizing
box-sizing supports IE8+
you can see here
You are missing box-sizing: border-box; -
*{ box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; }
IE Does not require vendor specific CSS -ms-box-sizing: border-box; is not needed
Fiddle - http://jsfiddle.net/ctHh3/
put this in your page, problem solved
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>