DEV Community

ENDEESA
ENDEESA

Posted on

CSS Selectors - Summary

1. Tag / Element selector

  • Use the built-in html element name, e.g. div, body, span, p, ul etc.
body
{
 // style applies entire body(including child tags)...
}
Enter fullscreen mode Exit fullscreen mode

2. Descendant selector


<p>
  <a>direct descendant</a>

  <span><a>Indirect descendant</a></span>
</p>

<style>
p a
{
  // Apply styles to all 'a'(anchor) elements withing the paragraph p
}
</style>
Enter fullscreen mode Exit fullscreen mode

3. Child selector

<p>
  <a>direct descendant</a>

  <span><a>Indirect descendant</a></span>
</p>

<style>
p > a
{
  // Apply styles to direct descendant only!
}
</style>
Enter fullscreen mode Exit fullscreen mode

4. Attribute selector

  • Select an element with a specified attribute

p[id]
{
  // Apply styles to p element with id attribute set to anything
}


p[id='fist']
{
  // Apply styles to p element with id attribute set to 'first'
}
Enter fullscreen mode Exit fullscreen mode

5. Select by Id

  • Probably the most common selector ??
<body>
<div id="container"></div>
<div id="not_a_container"></div>
</body>

<style>

 #container
  {
   // style applies to div with id attribute set to 'container'
  }
</style>

Enter fullscreen mode Exit fullscreen mode

6. Select by Class

  • Second most common? No ? Ok.
<body>
<div class="container"></div>
<div class="not_a_container"></div>
</body>

<style>

 .container
  {
   // style applies to div with class attribute set to 'container'
  }
</style>

Enter fullscreen mode Exit fullscreen mode

7. Pseudo selectors

  • Typically used to apply styles based on user events e.g. On mouse hover

a:hover
{
  font-weight: bold;
}

// set the font weight of all links to bold on mouse hover

Enter fullscreen mode Exit fullscreen mode

  • And finally......

8. Nth Child Selector

  • This is best explained using an example

<div>
<p>
Fist
</p>

<p>
Second
</p>

<p>
Third
</p>


<p>
Fourth
</p>
</div>


<style>
p:nth-child(2n)
{
 color: red;
}

// This will affect each p element inside the parent div who's position is a //multiple of 2
</style>

Enter fullscreen mode Exit fullscreen mode

Top comments (0)