Difference between div~div and div:not(:first-of-type)?

JavascriptWeb DevelopmentFront End Scripts

Both are same in terms of matching elements. Let us see an example:

   <div></div> <!-- div:first-child or div:first-of-type -->
   <div></div> <!-- div+div or div~div or div:nth-of-type(2) -->
   <div></div> <!-- div+p+div or div~div or div:nth-of-type(3),
   but not div+div -->
   <h1></h1> <!-- h1:first-child -->
   <div></div> <!-- div:first-of-type or div:nth-child(2) -->
   <div></div> <!-- div~div or div:nth-of-type(2) or div:nth-child(3) -->

If you have CSS rules with both selectors matching the same elements, then your div: not(:first-of-type) will get precedence due to the: first-of-type pseudo-class.

Updated on 28-Jan-2020 09:18:12