I am going through someone else's CSS code at the moment and found something I have not seen before, nor am I able to find anything on W3C schools about these types of selectors. Google also doesn't return anything if I type in "class^="
[class^='icon-'], [class*=' icon-'] { display:inline-block; background:url(../images/sprite.png) no-repeat 0 0; border:none; text-align:center; vertical-align:middle; *display:inline; *zoom:1; }
Would appreciate it if someone could shed some light on this please?
This is somewhat comprehensively covered here:
http://reference.sitepoint.com/css/css3attributeselectors
Quick summary:
[class^='icon-'] - classes starting with 'icon-' (eg. class='icon-blah blah')
[class$='-icon'] - classes ending with '-icon' (eg. class='blah blah-icon')
[class*='icon'] - classes containing 'icon' (eg. class='blah xxx-icon-blah')
It's worth noting that this is a full string matching pattern not a partial matching pattern. So for example, the class:
<div class='mystyle-type'/>
Will match to the selector [class^='mystyle'] but the class:
<div class='active mystyle-type'/>
Will not match, because the string 'active mystyle-type' does not start with 'mystyle'.
This can be problematic with javascript that adds classes dynamically like jquery's 'addClass'.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With