I have the css below:
span label[for=Length]
{
width: 90px;
display: block;
text-align:right;
margin-top: 2px;
margin-right: 5px;
}
with the html:
<span><label for="Length">Length:</label></span>
<span><input type=text id="Length"></span>
It doesn't work in IE8. label[for=...] is not recognised. Any workaround?
Thanks.
UPDATE
I do a mistake in my question so now I updated. Any solutions? Thanks!
IE 8 (or IE 9 for that matter) does not support attribute selectors in Quirks Mode. This is why adding a suitable doctype declaration, as suggested in Quentin’s answer, fixes the issue on IE 8. The simplest doctype for the purpose is <!doctype html>
.
On IE 7, nothing helps, as it simply lacks the support, instead of having it masked out in Quirks Mode.
It is thus safer to use an id
attribute on the label
element, e.g. <label id=foo for=Length>
, and use an id
selector, such as #foo
, in CSS. Such selectors work on all CSS-enabled browsers.
Add a <label>
element with a for="Length"
attribute.
(And make sure you have a Doctype that triggers Standards Mode)
The element has to be a label in order to be able to match it as a label in css try this:
<label for="Length">Length:</label>
<span><input type=text id="Length"></span>
.label1
{
width: 90px;
display: block;
text-align:right;
margin-top: 2px;
margin-right: 5px;
}
<span>Length:</span>
<label class='label1' for='Length'><input type=text id="Length"></label>
It works in IE8.. Not depends on the browser. Check the !doctype html for the file. Hence its an attribute, it works.