Slight difference in HTML elements’ semi-transparency
There’s a slight difference in making HTML elements semi-transparent using:
opacityattribute and- alpha channel
I was not aware of that difference, therefore I posted this short article to keep that fact in my memory.
Suppose you have a piece of HTML code like that:
<div class="compact">
<img src="<?php echo $img; ?/>" alt="< ?php echo $title; ?>" />
<div class="overlay">
<h2><a href="<?php echo $url; ?>">< ?php echo $title; ?></a></h2>
<a href="<?php echo $url; ?>">read mode »</a>
</div>
</div>
And that the image below an overlay covers entire area and overlay spans over it.
Now, if you set overlay semi-transparency using opacity attribute, like that:
.layout-compact .overlay {
background: #183882;
opacity: 0.8;
}
then you set it to overlay and all elements, it includes. I.e. if title and read more link are white, they’ll become a little bit grey, due to opacity.
If you, on contrary, use alpha-channel instead:
.layout-compact .overlay {
background: rgba(24, 56, 130, 0.8);
}
then you set semi-transparency only to overlay itself. I.e. white color of title and line remain unchanged.
This maybe obvious to others, but wasn’t that obvious to me, so I wrote this down for future reference.