I would like to change a Google Material Icon
(the actual icon itself) on a button hover. I would like to do this with only HTML
and CSS
. I would like it to go from the 'plus' icon to something like a 'check' icon, specifically, using the 'done' icon. Codepen below. Thanks
我想要改变一个谷歌材料图标(实际的图标本身)在一个按钮悬停。我只想用HTML和CSS来实现这一点。我希望它从“加”图标到“检查”图标,具体地说,使用“完成”图标。Codepen如下。谢谢
.material-icons.md1 {
font-family: 'Material Icons';
font-weight: normal;
font-style: normal;
font-size: 33px;
margin-top: 12px;
}
.btnwrap {
position: fixed;
z-index: 2;
height: 60px;
width: 300px;
background-color: #074fb2;
font-size: 20px;
display: block;
text-align: center;
vertical-align: middle;
line-height: 60px;
color: #fff;
border-radius: 50px;
cursor: pointer;
}
.btntext1 {
position: absolute;
left:85px;
transition: all .1s;
}
.btntext2 {
position: absolute;
width: 100%;
transition: all .2s;
opacity: 0;
}
.innerbtn {
z-index: 1;
position: relative;
float: left;
height: 56px;
width: 56px;
background-color: #3e81dc;
border-radius: 50px;
display: inline-block;
margin-top: 2px;
margin-left:2px;
transition: all 1s;
}
.btnwrap:hover .btntext1 {
opacity: 0;
transition: all .5s;
}
.btnwrap:hover .btntext2 {
opacity: 1;
transition: all .5s;
}
.btnwrap:hover .innerbtn {
margin-left: 242px;
}
<link href="https://fonts.googleapis.com/icon?family=Material+Icons"
rel="stylesheet">
<div id="button1" class="btnwrap" title="download_btn">
<div class="innerbtn"><i class="material-icons md1">add</i></div>
<div class="btntext2">Click Now</div>
<div class="btntext1">Download for FREE</div>
</div>
https://codepen.io/anon/pen/YYEXYy
https://codepen.io/anon/pen/YYEXYy
2 个解决方案
#1
4
So Im answering my own question here.. Leave the html empty, add the 'content' with ':before' in CSS, and then change that ':before' with the hover state.. see the forked Codepen:
所以我在这里回答我自己的问题。保持html为空,在CSS中添加'content' with ':before',然后更改':before',保持悬停状态。看到叉形Codepen:
<i class="material-icons md1" style="margin-top: 12px;"></i></div>
.material-icons.md1::before{
font-family: 'Material Icons';
font-weight: normal;
font-style: normal;
font-size: 33px;
content:"add";
}
.btnwrap:hover .material-icons.md1::before{
content:"done";
}
https://codepen.io/anon/pen/aEVOEr
https://codepen.io/anon/pen/aEVOEr
#2
0
HTML
HTML
<i class="material-icons md1"></i>
CSS
CSS
.material-icons.md1::before{
content:"add";
}
.material-icons.md1:hover::before{
content:"remove";
}
https://codepen.io/Funny0Frank/pen/RMYBvQ
https://codepen.io/Funny0Frank/pen/RMYBvQ
#1
4
So Im answering my own question here.. Leave the html empty, add the 'content' with ':before' in CSS, and then change that ':before' with the hover state.. see the forked Codepen:
所以我在这里回答我自己的问题。保持html为空,在CSS中添加'content' with ':before',然后更改':before',保持悬停状态。看到叉形Codepen:
<i class="material-icons md1" style="margin-top: 12px;"></i></div>
.material-icons.md1::before{
font-family: 'Material Icons';
font-weight: normal;
font-style: normal;
font-size: 33px;
content:"add";
}
.btnwrap:hover .material-icons.md1::before{
content:"done";
}
https://codepen.io/anon/pen/aEVOEr
https://codepen.io/anon/pen/aEVOEr
#2
0
HTML
HTML
<i class="material-icons md1"></i>
CSS
CSS
.material-icons.md1::before{
content:"add";
}
.material-icons.md1:hover::before{
content:"remove";
}
https://codepen.io/Funny0Frank/pen/RMYBvQ
https://codepen.io/Funny0Frank/pen/RMYBvQ