Skip to content

CSS Attribute Selectors

How to style HTML elements based on specific attributes or attribute values using CSS attribute selectors like [target], [attribute=value], and more.

Style HTML Elements With Specific Attributes

It is possible to style HTML elements that have specific attributes or attribute values.

Selector Example Example description
[attribute] [target] Selects all elements with a target attribute
[attribute=value] [target=_blank] Selects all elements with target="_blank"
[attribute~=value] [title~=bridge] Selects all elements with a title attribute containing the word "bridge"
[attribute|=value] [lang|=en] Selects all elements with a lang attribute value starting with "en"
[attribute^=value] a[href^="https"] Selects every <a>element whose href attribute value begins with "https"
[attribute$=value] a[href$=".pdf"] Selects every <a> element whose href attribute value ends with ".pdf"
[attribute*=value] a[href*="w3schools"] Selects every <a> element whose href attribute value contains the substring "w3schools"

CSS [attribute] Selector

The [attribute] selector is used to select elements with a specified attribute.

The following example selects all <a> elements with a target attribute:

a[target] {  
	background-color:  blue;  
}

CSS [attribute="value"] Selector

The [attribute="value"] selector is used to select elements with a specified attribute and value.

The following example selects all <a> elements with a target="_blank" attribute:

a[target="_blank"] {  
	background-color:  yellow;  
}

CSS [attribute~="value"] Selector

The [attribute~="value"] selector is used to select elements with an attribute value containing a specified word.

The following example selects all elements with a title attribute that contains a space-separated list of words, one of which is "bridge":

[title~="bridge"] {  
	border:  5px solid blue;  
}

The example above will match elements with title="bridge", title="long bridge", and title="bridge new", but not title="my-bridge" or title="bridges".

CSS [attribute|="value"] Selector

The [attribute|="value"] selector is used to select elements with the specified attribute, whose value can be exactly the specified value, or the specified value followed by a hyphen (-).

[class|="top"] {  
	background:  blue;  
}

CSS [attribute^="value"] Selector

The [attribute^="value"] selector is used to select elements with the specified attribute, whose value starts with the specified value.

The following example selects all elements with a class attribute value that starts with "top":

[class^="top"] {  
	background:  blue;  
}

CSS [attribute$="value"] Selector

The [attribute$="value"] selector is used to select elements whose attribute value ends with a specified value.

The following example selects all elements with a class attribute value that ends with "test":

[class$="test"] {  
	background:  blue;  
}

CSS [attribute*="value"] Selector

The [attribute*="value"] selector is used to select elements whose attribute value contains a specified value.

The following example selects all elements with a class attribute value that contains "te":

[class*="te"] {  
	background:  blue;  
}

Styling Forms

The attribute selectors can be useful for styling forms without class or ID:

input[type="text"] {  
	width:  150px;  
	display:  block;  
	margin-bottom:  10px;  
	background-color:  blue;  
}  
  
input[type="button"] {  
	width:  120px;  
	margin-left:  35px;  
	display:  block;  
}
Navigation