I cannot seem to make IE9 render a fieldset with rounded corners whereas other browsers do. Has anyone encountered this too ?
From my experence in the latest version of IE9, I can not get a fieldset with legend to have a radius. I have not had any trouble with other borders in IE9, the css3 border-radius works just fine, just fieldset/ledgend. I'm still scratching my head over this.
Fieldset rendering is always fraught with problems with rendering and particularly with printing. It's hardly surprising that it doesn't work.
The standard workaround is to add another container and style that.
I too used to use fieldset and for more than just forms, but the constant hit and miss on compatibility has caused me to dump them. Better to write your own CSS DIV Classes that emulate fieldset. Using CSS you can get an exact replica of what fieldset looks like and you have a lot more flexibility and compatibility
You can add the following meta tag:
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
This happens only if you use <fieldset>
with <legend>
- without it the corners render ok.
You can fix this bug by applying display:inline
or display:inline-block
to your <legend>
element - but than you have to reposition it back in place by setting position:relative
and moving it around.
Depending how the styling of your legend looks like (with background it will look the same - without the background the border of fieldset will still be visible behind the letters) you can make it look pretty much the same as in other normal browsers.
I had an access only to CSS file, so I could not make any changes in HTML, so I made the hack in CSS for IE.
HTML structure was:
<form>
<fieldset>
...form content...
</fieldset>
</form>
The whole CSS for all browers and with IE hack:
fieldset {
border-radius: 20px;
border: 1px #3D3D3D solid;
}
@media screen and (min-width:0\0) {
form {
border: 1px #3D3D3D solid;
border-radius: 20px;
}
fieldset {
border: 0 none;
margin-top: 1px;
margin-bottom: 1px;
}
}
Of course, if your site has another html-structure, this will not work. Therefore instead "form" you can apply in css to a parent div of your fieldset.