首先附上案例代码(小米版心导航栏)
<style>
body{
background: #cccccc;
}
.container {
width: 1226px;
margin: 0 auto;
}
.header {
background-color: #fff;
height: 100px;
position: relative;
}
.header-logo,
.header-nav {
float: left;
}
.header-search {
float: right;
}
.header-logo a {
display: inline-block;
margin-top: 23px;
height: 55px;
}
.logo {
background-color: #ff6700;
width: 55px;
position: absolute;
top: 0;
left: 0;
overflow: hidden;
}
.logo::before,
.logo::after {
content: "";
position: absolute;
width: 55px;
height: 55px;
background: url(./img/mi-logo.png) no-repeat center center;
transition: left 0.2s;
}
.logo::before {
left: -55px;
top: 0;
background-image: url(./img/mi-home.png);
}
.logo::after {
left: 0;
top: 0;
}
.logo:hover::before {
left: 0;
}
.logo:hover::after {
left: 55px;
}
.logo-gif {
position: absolute;
left: 62px;
}
.header-nav {
height: 88px;
position: absolute;
left: 220px;
padding: 12px 0 0 30px;
line-height: 88px;
font-size: 16px;
}
.nav-list .nav-items {
float: left;
margin-right: 20px;
}
.nav-list .nav-items a{
color: #000000;
}
.nav-items:hover a{
color: #ff6700;
}
.header-search{
height: 50px;
}
.header-search .btn-text{
position: absolute;
top: 25px;
right:52px;
width: 225px;
height: 50px;
padding: 0 10px;
/* border: 1px solid #e0e0e0; */
outline: 0;
-webkit-transition: all .2s;
transition: all .2s;
/* width: 225px;
height: 46px;
margin: 30px auto;
padding: 0 10px;
margin-right: 52px; */
}
.btn-submit{
position: absolute;
right: 0;
top:25px;
width: 52px;
height: 54px;
padding: 1px 6px;
}
</style>
html代码如下
<body>
<div class="container header">
<div class="header-logo">
<a class="logo" href=""></a>
<a class="logo-gif" href="">
<img src="./img/logo.gif" alt="" />
</a>
</div>
<div class="header-nav">
<ul class="nav-list">
<li class="nav-items">
<a href="">小米手机</a>
</li>
<li class="nav-items">
<a href="">Redmi 红米</a>
</li>
<li class="nav-items">
<a href="">电视</a>
</li>
<li class="nav-items">
<a href="">笔记本</a>
</li>
<li class="nav-items">
<a href="">家电</a>
</li>
<li class="nav-items">
<a href="">路由器</a>
</li>
<li class="nav-items">
<a href="">智能硬件</a>
</li>
<li class="nav-items">
<a href="">服务</a>
</li>
<li class="nav-items">
<a href="">社区</a>
</li>
</ul>
</div>
<div class="header-search">
<form action="">
<input class="btn-text" type="text">
<input class="btn-submit" type="submit">
</form>
</div>
</div>
</body>
个人总结
本案例中,中心思想,在不向文档流中增加新元素的同时,解决logo图片的动画移动效果.
- 1.首先,不增加新元素的解决方法用到了after与before两个伪元素
- 2.解决logo图片的动画,用的一个解决方法,定位,首先将默认显示图上显示,鼠标放在默认显示图上才显示出来的图利用绝对定位left定成负值,在hover效果中将2图left归零即可。
2020-6-2案例解决
Comments | NOTHING