CSS 淡入背景图片
CSS fade-in background image
我正在学习 CSS,我想将鼠标悬停在某些文本上,文本消失,图像淡入。我已经测试了一些东西,但它没有按照我想要的方式工作。
文本是 link 在悬停时我设置了背景图片。我可以使用 an,但我希望文本位于 的中间,并且它已经位于具有绝对位置的 a 中。
这是 HTML :
<div class="header">
<!--<ul>-->
<div class="header_element">
<a title="Home" href="page.php"> Home </a>
</div>
和 CSS :
div.header_element {
display: table-cell;
text-align: center;
vertical-align: middle;
height: 100%; }
div.header_element:hover {
background-position: center;
background-image: url("hover.png");
background-repeat: no-repeat; }`
如果有人能帮助我,我将不胜感激。
不确定您是否可以完全按照您想要的方式进行。对于 "fade in",您通常会为图层的不透明度设置动画,但这适用于整个图层,而不仅仅是背景图像。但是你为什么不把Image移动到另一层,像这样:
<div class="header_element">
<div class="header_background"></div>
<a title="Home" href="page.php"> Home </a>
</div>
此外,最好在用户悬停之前加载图像,因为这样在实际加载图像之前会有明显的延迟。
CSS 可能看起来像这样(虽然未测试):
.header_background {
transition: opacity 1s;
background-position: center;
background-image: url("hover.png");
background-repeat: no-repeat;
opacity: 0;
}
.header_element:hover > .header_background {
opacity: 1;
}
您可能希望使用不透明度和淡入效果。
div.header_element {
display: table-cell;
text-align: center;
vertical-align: middle;
}
div.header_element:hover {
background-position: center;
background-image: url("http://dummy-images.com/abstract/dummy-100x100-Rope.jpg");
background-repeat: no-repeat;
-webkit-animation: fadein 2s; /* Safari, Chrome and Opera > 12.1 */
-moz-animation: fadein 2s; /* Firefox < 16 */
-ms-animation: fadein 2s; /* Internet Explorer */
-o-animation: fadein 2s; /* Opera < 12.1 */
animation: fadein 2s;
}
@keyframes fadein {
from { opacity: 0; }
to { opacity: 1; }
}
/* Firefox < 16 */
@-moz-keyframes fadein {
from { opacity: 0; }
to { opacity: 1; }
}
/* Safari, Chrome and Opera > 12.1 */
@-webkit-keyframes fadein {
from { opacity: 0; }
to { opacity: 1; }
}
/* Internet Explorer */
@-ms-keyframes fadein {
from { opacity: 0; }
to { opacity: 1; }
}
/* Opera < 12.1 */
@-o-keyframes fadein {
from { opacity: 0; }
to { opacity: 1; }
}
如果是您想要的,请查看 jsfidle。
尝试添加以下内容 css 看看是否适合您:
.header_element{
background: red;
display: inline-block;
}
.header_element > a{
display: inline-block;
padding: 5px 10px;
}
.header_element:hover > a{
opacity: 0;
}
.header_element:hover{
background: url(http://dummyimage.com/60x28/000/fff);
}
你可以在这里看到测试:jsfiddle
我已将 text-indent
属性 添加到您现有的 CSS。因此,当您将鼠标悬停在 link 上时,文本将离开屏幕(隐藏)并且您只会看到图像。
.header_element {
display: table-cell;
text-align: center;
vertical-align: middle;
height: 100%;
}
.header_element a:hover{
background-position: center;
background-image: url("http://dummy-images.com/abstract/dummy-100x100-Rope.jpg");
background-repeat: no-repeat;
display:block;
text-indent: -9999px;
}
我正在学习 CSS,我想将鼠标悬停在某些文本上,文本消失,图像淡入。我已经测试了一些东西,但它没有按照我想要的方式工作。
文本是 link 在悬停时我设置了背景图片。我可以使用 an,但我希望文本位于 的中间,并且它已经位于具有绝对位置的 a 中。
这是 HTML :
<div class="header">
<!--<ul>-->
<div class="header_element">
<a title="Home" href="page.php"> Home </a>
</div>
和 CSS :
div.header_element {
display: table-cell;
text-align: center;
vertical-align: middle;
height: 100%; }
div.header_element:hover {
background-position: center;
background-image: url("hover.png");
background-repeat: no-repeat; }`
如果有人能帮助我,我将不胜感激。
不确定您是否可以完全按照您想要的方式进行。对于 "fade in",您通常会为图层的不透明度设置动画,但这适用于整个图层,而不仅仅是背景图像。但是你为什么不把Image移动到另一层,像这样:
<div class="header_element">
<div class="header_background"></div>
<a title="Home" href="page.php"> Home </a>
</div>
此外,最好在用户悬停之前加载图像,因为这样在实际加载图像之前会有明显的延迟。
CSS 可能看起来像这样(虽然未测试):
.header_background {
transition: opacity 1s;
background-position: center;
background-image: url("hover.png");
background-repeat: no-repeat;
opacity: 0;
}
.header_element:hover > .header_background {
opacity: 1;
}
您可能希望使用不透明度和淡入效果。
div.header_element {
display: table-cell;
text-align: center;
vertical-align: middle;
}
div.header_element:hover {
background-position: center;
background-image: url("http://dummy-images.com/abstract/dummy-100x100-Rope.jpg");
background-repeat: no-repeat;
-webkit-animation: fadein 2s; /* Safari, Chrome and Opera > 12.1 */
-moz-animation: fadein 2s; /* Firefox < 16 */
-ms-animation: fadein 2s; /* Internet Explorer */
-o-animation: fadein 2s; /* Opera < 12.1 */
animation: fadein 2s;
}
@keyframes fadein {
from { opacity: 0; }
to { opacity: 1; }
}
/* Firefox < 16 */
@-moz-keyframes fadein {
from { opacity: 0; }
to { opacity: 1; }
}
/* Safari, Chrome and Opera > 12.1 */
@-webkit-keyframes fadein {
from { opacity: 0; }
to { opacity: 1; }
}
/* Internet Explorer */
@-ms-keyframes fadein {
from { opacity: 0; }
to { opacity: 1; }
}
/* Opera < 12.1 */
@-o-keyframes fadein {
from { opacity: 0; }
to { opacity: 1; }
}
如果是您想要的,请查看 jsfidle。
尝试添加以下内容 css 看看是否适合您:
.header_element{
background: red;
display: inline-block;
}
.header_element > a{
display: inline-block;
padding: 5px 10px;
}
.header_element:hover > a{
opacity: 0;
}
.header_element:hover{
background: url(http://dummyimage.com/60x28/000/fff);
}
你可以在这里看到测试:jsfiddle
我已将 text-indent
属性 添加到您现有的 CSS。因此,当您将鼠标悬停在 link 上时,文本将离开屏幕(隐藏)并且您只会看到图像。
.header_element {
display: table-cell;
text-align: center;
vertical-align: middle;
height: 100%;
}
.header_element a:hover{
background-position: center;
background-image: url("http://dummy-images.com/abstract/dummy-100x100-Rope.jpg");
background-repeat: no-repeat;
display:block;
text-indent: -9999px;
}