一、头像
1、先在顶部来个头像,头像再做几个动画特效,就是鼠标移上去的时候边框转180°,需要注意的是图片不能随着边框也转动
所以得把图片和边框放在两个标签中,两个标签都用绝对定位来控制位置,我以前也做过一些动画的记录,可以在《CSS3中的动画效果记录》查看到。
<header>
<img src="img/avatar.jpg" />
<a href="javascript:void(0)"></a>
</header>
a标签和img标签的宽度和高度是一样的,这是为了在圆形边框中包住头像,transition就是用来做动画,边框颜色有两种,左边和上边是橙色,右边和下边是棕色的。:first-child是一个选择器。以前对选择器做些过记录,可以在《CSS选择器的一些记录》查看到。
.menu_container section:first-child > header{
margin: 10px auto;
width: 200px;
height: 200px;
position: relative;
}
.menu_container section:first-child > header a{
position: absolute;
z-index: 1;
display: block;
border: 10px solid #072256;
border-left-color:#E07514;
border-top-color:#E07514;
border-radius: 50%;
width: 180px;
height: 180px;
-webkit-transition:all .5s ease-in;
transition:all .5s ease-in;
-moz-transition:all .5s ease-in;
-o-transition:all .5s ease-in;
}
.menu_container section:first-child > header a:hover{
-webkit-transform: rotate(180deg);
-moz-transform: rotate(180deg);
-o-transform: rotate(180deg);
-ms-transform: rotate(180deg);
transform: rotate(180deg);
}
.menu_container section:first-child > header img{
width: 180px;
height: 180px;
border-radius: 50%;
display: block;
position: absolute;
top:10px;
left: 10px;
}
我还做了个响应式的CSS,用来控制a标签、img标签和header标签的宽度高度。
@media screen and (max-width: 680px) {
.menu_container section:first-child > header{
width: 100px;
height: 100px;
}
.menu_container section:first-child > header a{
border-width: 5px;
width: 90px;
height: 90px;
}
.menu_container section:first-child > header img{
width: 90px;
height: 90px;
top:5px;
left: 5px;
}
}
二、表格信息
1、做个列表信息,这里面用到了个选择器。一开始是用table实现的,但是发现用table做响应式的话有点困难,后面就用flex布局了。在媒体查询的时候再变成block布局。
.user_info{ width:100%; display:-webkit-box; display:-webkit-flex; display:-ms-flexbox; display:flex; padding-top:10px; overflow:hidden; } @media screen and (max-width: 680px) { .user_info{ display:block; font-size:1.6rem; } }
2、接下来要做一个动画,就是移到懒羊羊这里做个效果。如下图所示:
<a href="javascript:void(0)"> <span class="line line-top"></span> <span class="line line-right"></span> <span class="line line-bottom"></span> <span class="line line-left"></span> 懒羊羊 </a>
原理就是用span做四根白线,要绝对定位的,a标签设置为相对定位,在加点动画上去就行了,麻烦的地方就是四根白线的位置定位。
.user_info > span > a .line{ position:absolute; -moz-transition:all .4s ease; -o-transition:all .4s ease; -webkit-transition:all .4s ease; transition:all .4s ease; } .user_info > span > a:hover .line{ background:#fff; } .user_info > span > a .line-top{ width:0px; height:1px; left:-110%; top:-2px; } .user_info > span > a:hover .line-top{ width:100%; left:-2px; padding-left:3px; } .user_info > span > a .line-right{ width:1px; height:0px; right:-2px; top:-110%; } .user_info > span > a:hover .line-right{ height:100%; top:-2px; } .user_info > span > a .line-bottom{ width:1px; height:0px; left:-2px; bottom:-110%; } .user_info > span > a:hover .line-bottom{ height:100%; bottom:1px; } .user_info > span > a .line-left{ width:0px; height:1px; right:-110%; bottom:-2px; } .user_info > span > a:hover .line-left{ width:100%; right:-2px; bottom:1px; padding-right:3px; }
源码下载: