您现在的位置是:首页 > 前端 > css网站首页css
css3+js来写一个手机导航菜单
有些站长说想做一个手机适应的网站,但是导航太难了,如果要使用框架的话,代码非常多,冗余.再用dreamwear打开,那直接就不响应了.我一直都喜欢用简单的代码来实现,js,css3利用的好,同样可以做...
有些站长说想做一个手机适应的网站,但是导航太难了,如果要使用框架的话,代码非常多,冗余.再用dreamwear打开,那直接就不响应了.我一直都喜欢用简单的代码来实现,js,css3利用的好,同样可以做出好看实用的导航,关键是代码极少.现在我把步骤分享出来。
展开后:
效果演示请缩小你的浏览器比例,或者直接用手机访问.
思路是这样的:
两个导航,一个用于手机端显示,一个用于电脑端显示.自适应的css代码,当media screen width<480px,则显示mnav,隐藏PC端的nav样式.
按钮的动作:默认隐藏,动作点击后出现. 可以用×图标,或者css直接来写. 虽然用图片来比较简单,也不费事,但是css能实现就别用图片了,用css来实现吧.
html:
<div id="mobile_nav"> <div class="nav_box"><span class="navicon"></span></div> <ul class="nav_ul"> <li><a href="#">首页</a></li> <li><a href="#">前端</a></li> <li><a href="#">程序</a></li> <li><a href="#">生活</a></li> <li><a href="#">娱乐</a></li> <li><a href="#">关于</a></li> <li><a href="#">留言</a></li> </ul> </div>
css:
#mobile_nav { display: none; width: 100%; position: fixed; top: 0; right: 0; } #mobile_nav div { text-align: right; color: #fff; font-size: 18px; height: 40px; line-height: 40px; padding-left: 10px; width: 100% } #mobile_nav div.open { text-align: right; background: rgba(1,1,1,0.8); width: 100%; } #mobile_nav ul { display: none; background: rgba(1,1,1,0.8); width: 100%; padding-bottom:40px} #mobile_nav li { height: 40px; line-height: 40px; vertical-align: top; font-size: 16px; display: block; overflow: hidden; text-align: center } #mobile_nav a { color: #fff;} /* 默认 */ #mobile_nav .navicon { margin-right: 15px; } .navicon { display: inline-block; position: relative; width: 30px; height: 5px; background-color: #fff; } .navicon:before, .navicon:after { content: ''; display: block; width: 30px; height: 5px; position: absolute; background: #fff; -webkit-transition-property: margin, -webkit-transform; transition-property: margin, -webkit-transform; transition-property: margin, transform; transition-property: margin, transform, -webkit-transform; -webkit-transition-duration: 300ms; transition-duration: 300ms; } .navicon:before { margin-top: -10px; } .navicon:after { margin-top: 10px; } /* 展开后导航栏目 */ #mobile_nav div.open .navicon { background: rgba(1,1,1,0.8) }/* 使用背景色隐藏中间的红线 */ #mobile_nav div.open .navicon:before { margin-top: 0; -webkit-transform: rotate(45deg); transform: rotate(45deg); } #mobile_nav div.open .navicon:after { margin-top: 0; -webkit-transform: rotate(-45deg); transform: rotate(-45deg); } #mobile_nav div.open .navicon:before, #mobile_nav div.open .navicon:after { content: ''; display: block; width: 30px; height: 5px; position: absolute; background: #fff; -webkit-transition-property: margin, -webkit-transform; transition-property: margin, -webkit-transform; transition-property: margin, transform; transition-property: margin, transform, -webkit-transform; -webkit-transition-duration: 300ms; transition-duration: 300ms; } @media screen and (max-width: 480px) { nav { display: none } #mobile_nav { display: block; z-index: 99999; margin-bottom: 30px } }
js:
<script type="text/javascript"> window.onload = function (){ var nav_box = document.getElementsByClassName("nav_box")[0]; var ul = document.getElementsByClassName("nav_ul")[0]; nav_box.onclick = function (){ var style = ul.style; style.display = style.display == "block" ? "none" : "block"; nav_box.className = style.display == "block" ? "open" : "" } } </script>
上一篇:最简单的代码修饰器
下一篇:CSS3弹性Flex布局
相关文章
文章评论 (0)
- 这篇文章还没有收到评论,赶紧来抢沙发吧~