In the following code, I want to set the opacity only for the background color of the li
(not the text). However, it is important NOT to use the rgba
for the background.
I'm trying following, but it sets the opacity for the link text as well.
HTML:
<ul>
<li><a href="#">Hello World</a></li>
</ul>
CSS:
body{
background: red;
}
ul{
margin: 100px;
}
li{
padding: 10px;
background: #000000;
opacity: 0.1;
}
a{
color: #fff;
font-weight: 700;
opacity: 1;
}
JSFiddle: http://jsfiddle.net/2uJhL/
The percentage of opacity is calculated as Opacity% = Opacity * 100 To set the opacity only to the background and not the text inside it. It can be set by using the RGBA color values instead of the opacity property because using the opacity property can make the text inside it fully transparent element.
Simply use rgba to define your background color and specify opacity with it at the same time by adjusting the last value, for alpha, in your rgba code. For scaling, bringing the value closer to 0 increases transparency. To simplify your HTML, you don't even need the parent div around your block of text to do this.
Answer: Use the CSS RGBA colors There is no CSS property like "background-opacity" that you can use only for changing the opacity or transparency of an element's background without affecting its child elements.
There's no CSS property that you can use to change the opacity of only the background image. Unlike background colors, which allow you to adjust the alpha channel to control opacity, it simply doesn't exist for the background-image property.
Old question, but new answer! :)
Fortunately, the new versions of Chrome and Firefox support 8 digit colors. That's really cool, especially when you're developing and testing software.
For example:
background-color: #ff0000; (Red)
If you want a opacity of 0.5, you can do this:
background-color: #ff00007f (The 7F is half of FF)
So, from now on you won't need to use the rgba()
if you don't want or have the entire div fade away - because of the opacity: 0.x
- when you only want the background color a little bit transparent.
But remember that not all browsers support that. So, please test the snippet below on Chrome or Firefox, ok?
Isn't that cool???
<div style="background-color: #ff00003f;">better than [opacity: 0.25]</div>
<div style="background-color: #ff00007f;">better than [opacity: 0.50]</div>
<div style="background-color: #ff0000bf;">better than [opacity: 0.75]</div>
<div style="background-color: #ff0000ff;">better than [opacity: 1.00]</div>
Source: https://css-tricks.com/8-digit-hex-codes/
You can set a PNG or GIF image as background, i.e:
li {
background-image: url('path/to/your/image.png');
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With