I'm trying to use a <legend>
as a title inside a <fieldset>
.
In browsers other than IE, the <legend>
is positioned on the top border of the <fieldset>
, with the text perfectly centered on the line.
I'm trying to reset it's position so that it sits just like any other element. i.e. an <h3>
.
Here's the CSS I have so far.
fieldset legend {
margin: 0;
padding: 0;
position: static;
border: 0;
top: auto; left: auto;
float: none;
display: block;
font-size: 14px;
line-height: 18px;
}
But the legend is still perfectly centered on the line.
Yes, I can add a margin/padding/top coordinate but I want to know if the browser has any default values for the element that trigger this layout. I want to then, override these values.
Tested in Firefox (3.6.10), Chrome (6.0.472.63), Safari (5.0.2)
Update
I'll leave this question open for another week just in case someone HAS been able to style <legend>
elements. If no solutions are found I'll accept @jnpcl's answer.
I've just styled my
<legend>
's by giving them aposition: absolute; top: -25px;
and the the parent<fieldset>
with aposition: relative; padding-top: 30px;
According to the specification, here is the default styling of the
fieldset
andlegend
elements. By resetting those properties, you can have a cleanlegend
element to work with.https://web.archive.org/web/20140209061351/http://tjkdesign.com/articles/how_to_position_the_legend_element.asp
Workaround: wrap the text from
<legend>
in a<span>
, then reposition the<span>
.As per HTML - Living Standard, the below styles are working like a default:
This is enough :