Match all elements having class name starting with a specific string [duplicate]

Is it possible to use a "wildcard" for elements having a class name starting with a specific string in CSS3?

Example:

<div></div> <div></div> <div></div> 

and then magically set all the above divs to red in one go:

.myclass* { color: #f00; } 
1

3 Answers

The following should do the trick:

div[class^='myclass'], div[class*=' myclass']{ color: #F00; } 

Edit: Added wildcard (*) as suggested by David

11

It's not a direct answer to the question, however I would suggest in most cases to simply set multiple classes to each element:

<div></div> <div></div> <div></div> 

In this way you can set rules for all myclass elements and then more specific rules for one, two and three.

.myclass { color: #f00; } .two { font-weight: bold; } etc. 
14

You can easily add multiple classes to divs... So:

<div></div> <div></div> <div></div> 

Then in the CSS call to the share class to apply the same styles:

.myclass {...} 

And you can still use your other classes like this:

.myclass-three {...} 

Or if you want to be more specific in the CSS like this:

.myclass.myclass-three {...} 
5

You Might Also Like