Hello!小伙伴!
首先很是感谢您阅读海轰的文章,假若文中有错误的地方,欢迎您指出~
哈哈 自我介绍一下
昵称:海轰
标签:程序猿一只|C++选手|学生
简介:因C语言结识编程,随后转入计算机专业,有幸拿过国奖、省奖等,已保研。目前正在学习C++/Linux(真的真的太难了~)
学习经验:扎实基础 + 多作笔记 + 多敲代码 + 多思考 + 学好英语!
平常分享:微信公众号【海轰Pro】记录生活、学习点滴,分享一些源代码或者学习资料,欢迎关注~css
上面效果能够归纳为:html
根据效果图能够得出实现的一些思路:编程
这里使用的渐变色:微信
HTML学习
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="style.css"> <title>Document</title> </head> <body> <button class="btn">Haihong Pro</button> </body> </html>
CSSflex
html,body{ margin: 0; height: 100%; } body{ display: flex; justify-content: center; align-items: center; } .btn{ width: 390px; height: 120px; background:linear-gradient(315deg, #89d8d3 0%, #03c8a8 74%); border: none; border-radius: 10px; font-family: 'Lato', sans-serif; font-weight: 500; font-size: 48px; color: #fff; box-shadow: inset 2px 2px 2px 0px rgba(255, 255, 255, .5), 7px 7px 20px 0px rgba(0, 0, 0, .1), 4px 4px 5px 0px rgba(0, 0, 0, .1); outline: none; position: relative; z-index: 0; } .btn::before{ position:absolute; content: ''; left: 0; bottom:0; width: 100%; height: 0; transition: all 0.3s ease; border-radius: 10px; background: linear-gradient(315deg, #4dccc6 0%, #96e4df 74%); z-index: -1; } .btn:hover::before{ top: 0; height: 100%; } .btn:active{ top: 2px; }
1.为何触发hover时,除了设置height:100%外,还须要设置top:0呢?上面效果图原理是怎样呢?ui
为了便于观察,咱们将::before的初始状态显示出来3d
初始时,before的位置是在左下角(bottom:0 left:0)code
触发hover时,若是只是设置heigth:100%,产生的效果以下:htm
若是此时当即将位置改成左上角(top:0 left:0),就会产生从上至下的效果:
因此还须要在触发hover时,添加 top:0 ( left就不须要变了,由于本来设置好了 )
2.为何最后须要设置:active呢?
.btn:active{ top: 2px; }
emmm,就是产生一个点击按钮的动态效果(点击一下,动一下),具体能够查看css :active的做用,这里就很少说了。
1.button、button::before须要设置z-index,分别为0和-1(肯定button在上面一层就行)
否则,会产生以下效果:
2.button中记得设置 outline: none;
否则,点击button后,会出现蓝色边框
注:前两次文章中海轰也没有发现这个问题,今天写的的时候,点击后才发现了这个问题
学习来源:
css只会一点点,学习之余从喜欢看一些大神级别的css效果展现,根据源码一点一点学习知识点,文中有不对的地方,欢迎指出~