使 div 项目透明,悬停时内容不透明
Make the div item transparent, with non-transparent content WHEN hovering
我有一个 <div id='a'>
当悬停在其父元素上时它会变得透明。但是 div 的内容应该是不透明的。代码如下:
.changer{
background-color: gray;
opacity:0;
display: block;
transition: .5s ease;
backface-visibility: hidden;
}
.mb-4:hover .changer{
opacity: 0.6;
}
<a href="#" class="d-block mb-4">
<div id="a" class="changer d-inline">The text that must be non-transparent</div>
<img class="img-fluid img-thumbnail" src="images/barcelona.jpg" alt=""> <!--this element is not very important-->
</a>
使用背景色来做到这一点
比方说,如果你想让 div 半透明并且背景是白色的,那么你需要以下代码:
background: rgba(255,255,255,0.6);
这里需要使用rgb值,最后一个0.6值是不透明度,(255,255,255)是白色的颜色代码,你可以通过更改值来制作任何颜色。
删除背景颜色和不透明度属性
使用 CSS3 的背景不透明度来更改 div/img/whatever 背景的可见度,而不影响其中的内容。
.inner {
color: black;
background: rgba(128, 0, 128, 0.25);
transition: .5s ease;
height: 3em;
}
.outer:hover .inner {
background: rgba(128, 0, 128, 0.75);
height: 4em;
}
.outer .inner div {
width: 10em;
height: 2em;
background: gray;
}
a,
a:visited,
a:hover,
a:active {
text-decoration: none;
}
<a href="#" class="outer">
<div class="inner">
<div>Hover over me</div>
</div>
</a>
编辑
修改片段以证明内部 div 完全不受外部 div 的更改影响。
编辑 2
也要更改文本的透明度:
.inner {
background: rgba(128, 128, 128, 0);
color: rgba(0, 0, 0, 0);
transition: .5s ease;
}
.outer:hover .inner {
background: rgba(128, 128, 128, 1);
color: rgba(0, 0, 0, 1);
/* alternative: change the text color itself instead of changing opacity */
}
a,
a:visited,
a:hover,
a:active {
text-decoration: none;
}
<a href="#" class="outer">
<div class="inner">Hover over me</div>
</a>
我有一个 <div id='a'>
当悬停在其父元素上时它会变得透明。但是 div 的内容应该是不透明的。代码如下:
.changer{
background-color: gray;
opacity:0;
display: block;
transition: .5s ease;
backface-visibility: hidden;
}
.mb-4:hover .changer{
opacity: 0.6;
}
<a href="#" class="d-block mb-4">
<div id="a" class="changer d-inline">The text that must be non-transparent</div>
<img class="img-fluid img-thumbnail" src="images/barcelona.jpg" alt=""> <!--this element is not very important-->
</a>
使用背景色来做到这一点 比方说,如果你想让 div 半透明并且背景是白色的,那么你需要以下代码:
background: rgba(255,255,255,0.6);
这里需要使用rgb值,最后一个0.6值是不透明度,(255,255,255)是白色的颜色代码,你可以通过更改值来制作任何颜色。
删除背景颜色和不透明度属性
使用 CSS3 的背景不透明度来更改 div/img/whatever 背景的可见度,而不影响其中的内容。
.inner {
color: black;
background: rgba(128, 0, 128, 0.25);
transition: .5s ease;
height: 3em;
}
.outer:hover .inner {
background: rgba(128, 0, 128, 0.75);
height: 4em;
}
.outer .inner div {
width: 10em;
height: 2em;
background: gray;
}
a,
a:visited,
a:hover,
a:active {
text-decoration: none;
}
<a href="#" class="outer">
<div class="inner">
<div>Hover over me</div>
</div>
</a>
编辑
修改片段以证明内部 div 完全不受外部 div 的更改影响。
编辑 2
也要更改文本的透明度:
.inner {
background: rgba(128, 128, 128, 0);
color: rgba(0, 0, 0, 0);
transition: .5s ease;
}
.outer:hover .inner {
background: rgba(128, 128, 128, 1);
color: rgba(0, 0, 0, 1);
/* alternative: change the text color itself instead of changing opacity */
}
a,
a:visited,
a:hover,
a:active {
text-decoration: none;
}
<a href="#" class="outer">
<div class="inner">Hover over me</div>
</a>