Selectors - Basic Syntax

Basic Syntax

Selectors refer to the HTML elements to which CSS rules apply; they’re what is actually being “selected” for each rule.

Universal Selector:

* {
  color: purple;
}

Type Selectors:

index.html styles.css
<div>Hello, World!</div>
<div>Hello again!</div>
<p>Hi...</p>
<div>Okay, bye.</div>
div {
  color: white;
}

Class Selectors:

index.html styles.css
<div class="alert-text">
  Please agree to our terms of service.
</div>
.alert-text {
  color: red;
}

ID Selectors:

index.html styles.css
<div id="title">My Awesome 90's Page</div> #title {
  background-color: red;
}

Grouping Selector:

.read {
  color: white;
  background-color: black;
  /* several unique declarations */
}

.unread {
  color: white;
  background-color: black;
  /* several unique declarations */
}
.read,
.unread {
  color: white;
  background-color: black;
}
.read {
  /* several unique declarations */
}

.unread {
  /* several unique declarations */
}

Chaining Selectors:

index.html styles.html
<div>
  <div class="class1 class2">Latest Posts</div>
  <p class="class1 class3">This is where a preview for a post might go.</p>
</div>
.class1.class2 {
  color: red;
}
index.html styles.css
<div>
  <div class="class1 class2">Latest Posts</div>
  <p class="class1" id="id1">This is where a preview for a post might go.</p>
</div>
.class1.class2 {
  color: red;
}

.class1#id1 {
  color: blue;
}

Descendant Combinator:

index.html styles.css
<div class="ancestor"> <!-- A -->
  <div class="contents"> <!-- B -->
    <div class="contents"> <!-- C --> </div>
  </div>
</div>

<div class="contents"></div> <!-- D -->
.ancestor .contents {
  /* some declarations */
}