Class Selector
The class selector matches elements by their class attribute value. It is denoted by a period (.) followed by the class name and has a specificity of 2-4 points depending on the number of classes.
Usage
.classname {
property: value;
}
Class selectors can match multiple elements that share the same class and can be combined for more specific targeting.
Syntax Examples
/* Single class */
.highlight {
background-color: yellow;
}
/* Multiple classes (both must be present) */
.important.urgent {
color: red;
font-weight: bold;
}
/* Class with element type */
p.intro {
font-size: 14pt;
}
Specificity
- Single class: 2 points
- Double class: 3 points
- Triple class: 4 points
Notes
- Class names are case-sensitive
- An element can have multiple classes (space-separated in HTML)
- The selector
.class1.class2matches elements that have both class1 AND class2 - Class selectors are reusable across multiple elements
- More specific than element selectors but less specific than ID selectors
Examples
Example 1: Basic class styling
<style>
.highlight {
background-color: yellow;
padding: 5pt;
}
</style>
<body>
<p class="highlight">This paragraph is highlighted.</p>
<p>This paragraph is not.</p>
<span class="highlight">This span is also highlighted.</span>
</body>
Example 2: Multiple classes on one element
<style>
.large {
font-size: 16pt;
}
.bold {
font-weight: bold;
}
.red {
color: red;
}
</style>
<body>
<p class="large bold">Large and bold text.</p>
<p class="large red">Large and red text.</p>
<p class="bold red">Bold and red text.</p>
</body>
Example 3: Multi-class selector
<style>
.warning.important {
color: red;
font-weight: bold;
border: 2pt solid red;
padding: 10pt;
}
</style>
<body>
<div class="warning">This is just a warning.</div>
<div class="important">This is just important.</div>
<div class="warning important">This is both - styled with red border!</div>
</body>
Example 4: Element with class
<style>
p.intro {
font-size: 14pt;
font-weight: bold;
color: #333;
}
div.intro {
background-color: #f0f0f0;
padding: 20pt;
}
</style>
<body>
<p class="intro">Intro paragraph with special styling.</p>
<div class="intro">Intro div with different styling.</div>
</body>
Example 5: Card layout pattern
<style>
.card {
border: 1pt solid #ddd;
border-radius: 4pt;
padding: 15pt;
margin-bottom: 10pt;
}
.card-header {
font-size: 16pt;
font-weight: bold;
margin-bottom: 10pt;
}
.card-body {
font-size: 12pt;
line-height: 1.5;
}
</style>
<body>
<div class="card">
<div class="card-header">Card Title</div>
<div class="card-body">Card content goes here.</div>
</div>
</body>
Example 6: Alert boxes
<style>
.alert {
padding: 12pt;
margin-bottom: 10pt;
border: 1pt solid transparent;
}
.alert-success {
color: #155724;
background-color: #d4edda;
border-color: #c3e6cb;
}
.alert-danger {
color: #721c24;
background-color: #f8d7da;
border-color: #f5c6cb;
}
</style>
<body>
<div class="alert alert-success">Operation successful!</div>
<div class="alert alert-danger">Error occurred!</div>
</body>
Example 7: Text utility classes
<style>
.text-center {
text-align: center;
}
.text-right {
text-align: right;
}
.text-muted {
color: #6c757d;
}
.text-uppercase {
text-transform: uppercase;
}
</style>
<body>
<p class="text-center">Centered text</p>
<p class="text-right text-muted">Right-aligned muted text</p>
<p class="text-uppercase">uppercase text</p>
</body>
Example 8: Spacing utilities
<style>
.m-0 { margin: 0; }
.m-1 { margin: 5pt; }
.m-2 { margin: 10pt; }
.p-0 { padding: 0; }
.p-1 { padding: 5pt; }
.p-2 { padding: 10pt; }
</style>
<body>
<div class="m-2 p-2">Box with margin and padding</div>
<div class="m-0 p-1">Different spacing</div>
</body>
Example 9: Table row styling
<style>
.table-row-even {
background-color: #f2f2f2;
}
.table-row-highlight {
background-color: #ffffcc;
font-weight: bold;
}
</style>
<body>
<table>
<tr><td>Row 1</td></tr>
<tr class="table-row-even"><td>Row 2</td></tr>
<tr><td>Row 3</td></tr>
<tr class="table-row-even table-row-highlight"><td>Row 4</td></tr>
</table>
</body>
Example 10: Combined with data binding
<style>
.product-name {
font-size: 14pt;
font-weight: bold;
}
.product-price {
color: #28a745;
font-size: 16pt;
}
</style>
<body>
<div data-bind="">
<div class="product-name"></div>
<div class="product-price">$</div>
</div>
</body>