How to select label for=“XYZ” in CSS?

后端 未结 3 1857
忘掉有多难
忘掉有多难 2020-11-28 01:36

HTML:

CSS:

label {
  display: block;         


        
相关标签:
3条回答
  • 2020-11-28 02:08

    If the content is a variable, it will be necessary to concatenate it with quotation marks. It worked for me. Like this:

    itemSelected(id: number){
        console.log('label contains', document.querySelector("label[for='" + id + "']"));
    }
    
    0 讨论(0)
  • 2020-11-28 02:14

    If the label immediately follows a specified input element:

    input#example + label { ... }
    input:checked + label { ... }
    
    0 讨论(0)
  • 2020-11-28 02:17

    The selector would be label[for=email], so in CSS:

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

    ...or in JavaScript using the DOM:

    var element = document.querySelector("label[for=email]");
    

    ...or in JavaScript using jQuery:

    var element = $("label[for=email]");
    

    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.

    0 讨论(0)
提交回复
热议问题