Excluding a Parent
In yesterdays post I used both inline code blocks and larger code blocks to illustrate the advantages of (https://direnv.net)[direnv]. I then noticed that the inline code blocks were not similarly styled as the larger code blocks which are styled according to codehilite.
I naively added my desired styling to all <code>
tags but of course this also applied to the large codehilite blocks and added strange behaviour. Looking closer at the html I noticed that codehilite added its styling on a class selector and that all of its <code>
tags were the child of a <pre>
tag. The question then becomes how do I select all <code>
tags which do not have the <pre>
tag as a parent.
<code> <-- Select this
<!-- code here -->
</code>
<pre class="codehilite">
<code> <-- Do not select this
<!-- code here -->
</code>
</pre>
Using the child combinator >
and the :not()
pseudo class this can be solved. The child combinator allows us to select all <code>
tags that have a <pre>
parent while the :not()
pseudo class flips that selection to instead exclude all <code>
tags with a <pre>
tag as a parent. The resulting selector end up like below:
:not(pre) > code {
/* styling */
}
Just a quick little tip today. Hope you find it helpful!
Cheers,
Theo