Kyle Kyle - 5 months ago 24
CSS Question

How to select label for="email" in CSS?

Code:

<label for="email">{t _your_email}:</label>


CSS:

label
{
display: block;
width: 156px;
cursor: pointer;
padding-right: 6px;
padding-bottom: 1px;
}


I want to make a new CSS for the email label as it's not meant to be that wide.

Answer

The selector would be

label[for=email]
{
    /* ...definitions here... */
}

It's an attribute selector. Note that some browsers (versions of IE < 8, for instance) may not support attribute selectors, but more recent ones do. To support older browsers like IE6 and IE7, you'd have to use a class (well, or some other structural way), sadly.

(I'm assuming that the template {t _your_email} will fill in a field with id="email". If not, use a class instead.)

Note that if the value of the attribute you're selecting doesn't fit the rules for a CSS identifier (for instance, if it has spaces or brackets in it, or starts with a digit, etc.), you need quotes around the value:

label[for="field[]"]
{
    /* ...definitions here... */
}

They can be single or double quotes.