您的位置:首页 > 运维架构 > 网站架构

响应式布局之网站头部导航

2016-12-16 17:31 323 查看

 爱编程爱分享,原创文章,转载请注明出处,谢谢!http://www.cnblogs.com/fozero/p/6187798.html 

网页支持响应式布局的好处我就不说了,这里我通过写一个简单的网站导航来学习响应布局的开发

 

Meta标签定义

<!--使用 viewport meta 标签在手机浏览器上控制布局-->
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1" />
<!--通过快捷方式打开时全屏显示-->
<meta name="apple-mobile-web-app-capable" content="yes" />
<!--隐藏状态栏-->
<meta name="apple-mobile-web-app-status-bar-style" content="blank" />
<!--iPhone会将看起来像电话号码的数字添加电话连接,应当关闭-->
<meta name="format-detection" content="telephone=no" />

定义body中的结构

<div class="nav">
<ul>
<li>
<a href="#" class="actived">网站首页</a>
</li>
<li>
<a href="#">公司案例</a>
</li>
<li>
<a href="#">公司相册</a>
</li>
<li>
<a href="#">团队博客</a>
</li>
<li>
<a href="#">关于我们</a>
</li>
</ul>
<img src="img/more_black.png" />
</div>

定义样式

<style type="text/css">
body {
margin: 0;
padding: 0;
}

.nav {
position: relative;
background-color: #fff;
height: 78px;
width: 100%;
border-bottom: 1px solid #DADADA;
}

.nav img {
position: absolute;
right: 20px;
top: 30px;
width: 28px;
display: none;
}

.nav ul {
list-style: none;
margin: 0;
padding: 0;
text-align: center;
}

.nav ul li {
height: 78px;
width: 168px;
line-height: 78px;
text-align: center;
display: inline-block;
}

.nav ul li:hover {
cursor: pointer;
}

.nav ul li a {
text-decoration: none;
color: #666;
padding-bottom: 8px;
}

.nav ul li .actived {
border-bottom: 3px solid #EE5C42;
}

</style>

 

查看效果图

 

可以看到导航已经显示出来了,我们给导航加上点击事件以改变导航选中样式

<script>
$(function() {
$(".nav ul li").click(function() {//导航点击
$(".nav ul li a").removeClass("actived");
$(this).children("a").addClass("actived");
});
});
</script>

 

那如果说我们想要支持响应式布局该怎么做呢?

上面最开始我们已经添加支持手机的Meta相关标签元素了,接着我们通过媒体查询来使我们手机支持响应式导航显示

主要用到@media only screen and (max-width: 878px) {}   设置当屏幕宽度小于878px的时候执行里面的样式

这里我们先在右上角显示一个图标,然后点击图标的时候显示右侧的导航,再点击图标隐藏右侧的导航

我们继续在Style标签内添加以下样式

/*媒体查询*/
/*屏幕宽度小于878px的时候执行里面的css*/

@media only screen and (max-width: 878px) {
.nav img {
display: inline;
}
.nav ul {
position: absolute;
right: 0;
text-align: right;
top: 78px;
display: none;
}
.nav ul li {
display: block;
border: 1px solid #dadada;
height: 58px;
line-height: 58px;
width: 98px;
}
.nav ul li a {
display: block;
padding-bottom: 0;
}
.nav ul li .actived {
border-bottom: none;
}
.nav ul li a:hover {
background-color: #6E6E6E;
color: #fff;
}
}

 

最后将js添加上去,用于操作显示或隐藏下方导航列表

$(".nav img").click(function() {//显示或隐藏下方导航列表
$(".nav ul").slideToggle(100);
});

 

OK,完成。

我们来看下效果,在手机上面打开网页显示导航如下图

点击右侧图标显示导航效果

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: