响应式WEB设计:将导航菜单转换成下拉菜单以适应小屏幕设备

移动互联网时代的到来,使得我们在进行页面设计与开发时,应当根据用户行为以及设备环境(系统平台、屏幕尺寸)进行相应的响应和调整,这个理念也叫响应式WEB设计。今天我将给大家讲解当屏幕尺寸变小时,将横向菜单转换成下拉菜单的效果。

本文使用了HTML5标签以及CSS3技术,您在查看demo时需要您的浏览器支持HTML5和CSS3,建议使用Chrome,Firefox或者IE9等现代浏览器。

HTML

<nav>
  <ul>
       <li><a href="/">首页</a></li>
       <li><a href="/server.html">服务</a></li>
       <li><a href="/case.html">案例</a></li>
       <li><a href="/about.html">关于</a></li>
       <li><a href="/blog.html">BLOG</a></li>
  </ul>
</nav>

我们使用了HTML5标签nav,用它来定义导航链接,即navigation。接下来我们要用css来将导航菜单并排。

CSS

nav ul{width:500px;margin:20px auto;}
nav ul li{float:left; width:100px; height:24px; line-height:24px}

那么,当我们缩小屏幕的时候,要将横向菜单转换成下拉select菜单,如何处理呢?别着急,先要在html中创建一个select下拉菜单,方式有两种,一是直接在html中写一段select;二是通过javascriot动态生成select菜单。由于第一种方式会在html直接产生两个select不可取,因此我们采用第二种方式动态生成select。

jQuery

我们用jQuery来很方便的实现动态创建select。

$(function(){
	// 创建一个select标签
   $("<select />").appendTo("nav");

   // 创建默认选项 "Go to..."
   $("<option />", {
      "selected": "selected",
      "value"   : "",
      "text"    : "Go to..."
   }).appendTo("nav select");

   // 根据导航菜单中链接,获取下拉菜单选项,包括文本和链接
   $("nav a").each(function() {
       var el = $(this);
       $("<option />", {
           "value"   : el.attr("href"),
           "text"    : el.text()
       }).appendTo("nav select");
   });
   //当选中下拉框中的选项时实现跳转
   $("nav select").change(function() {
       window.location = $(this).find("option:selected").val();
   });
});

这个时候保存页面,预览可以发现有一个横向导航菜单和一个下拉select菜单,这两个菜单是同时存在的,那么要怎么才能达到不同屏幕尺寸显示不同的菜单效果呢?

回到CSS上面来,要实现切换效果需要借助CSS3利器Media Queries。

CSS

nav select {display: none;} //隐藏select
@media (max-width: 960px) {
  nav ul     { display: none; }
  nav select { display: inline-block; float:right; margin:20px 100px}
}

以上代码大意:先隐藏javascript生成的selelct菜单,当窗口尺寸小于960px时,隐藏横向导航菜单,显示下拉菜单。

在桌面浏览器上,当你改变窗口尺寸到达960像素的时候,就会看到布局的改变。需要注意的是,上面的max-width部分仅仅为了测试,如果你不希望用户在桌面浏览器中因为改变了窗口大小而导致你的布局改变,可以去掉max-width部分,而只针对那些移动设备。

现在你可以使用你手中的Iphone或者Android平台的手机访问地址xxx/demo/menu2drop看看效果了。

时间: 2024-12-15 06:58:02

响应式WEB设计:将导航菜单转换成下拉菜单以适应小屏幕设备的相关文章

css014 响应式web设计

css014 响应式web设计 一.    响应式web设计基础知识 1.rwd的三大理念:a.用于布局的弹性网络, b.用于图片和视频的弹性媒体,c.为不同屏幕宽度创建的不同样式的css媒体查询. 二.    为RWD构建网页 1.            手机浏览器中为了忽略手机浏览器屏幕变小字体也变小的行为,可在head中添加一行代码: <meta name="viewport" content="width=vedice-width"> 最好是添加

《响应式Web设计实践》学习笔记

原书: 响应式Web设计实践 第2章 流动布局 1. 布局选项 传统的固定布局中存在很多问题, 随着屏幕大小的越来越多元化, 固定布局已经不能适用了. 在流动布局中, 度量的单位不再是像素, 而是变成了百分比. 弹性布局与流动布局类似, 但是通常情况下, 弹性布局中会以em来作为单位. 带来一个好处是随着用户增大或减小字体, 适用弹性布局的元素的宽度也会等比例地变化. 但是其也可能出现水平滚动条 混合布局 媒体查询: 媒体查询允许根据设备的信息----诸如屏幕宽度, 方向或者分辨率等属性来使用不

响应式 Web 设计应该避免的错误

英文原文:Mistakes to Avoid With Responsive Web Design By Ramya Raju 当下,尤其是几乎人人都有一台智能手机或者平板电脑的时候,开发手机端用户体验友好的网站的重要性不言而喻.其结果是,企业所有者会因为这样的交互 网站设计能够给不同平台下(桌面端到手机端到平板电脑)的用户带来不一般的体验而去触碰交互式web设计这一想法.开发一个带有响应式交互设计的网站变得 非常有意义,因为其可以在不同的设备运行,因此,你可以节约针对不同平台开发不同网站的成本

CSS3-基于浮动的布局,响应式WEB设计,定位网页上的元素,设计打印页面的css技术

基于浮动的布局: 1.除非图片设置了宽度,否则始终应该要对浮动的图片设置一个宽度,这样可以让浏览器给其他内容腾出环绕的空间 2.当侧边栏的高度与主内容区的高度不一致的时候,可以用个margin进行调整 3.在一个非浮动元素<div>中存在一个浮动元素,当浮动元素高于元素本身的时候,内容就会溢出<div>中,解决方案如下: A:在</div>介绍之前添加一个换行,并且添加一个类<br class=”clear”/>,之后创建一个样式br.class{clear

十大响应式Web设计框架

http://www.csdn.net/article/2014-05-13/2819739-responsive-frameworks-for-web-design 对于设计师而言,网站设计中的任意一环节都不容忽视.时下,借助网上的一些资源,只需简单的几个步骤你就可创建出更具吸引力的设计,包括菜单.背景.动画.眉头.body等设计.响应式Web设计不仅能够适用于任何屏幕尺寸,还为用户带来更完美的体验,本文将分享十款最佳的响应式Web设计,助你大大简化工作流程. Gumby Framework

响应式web设计视图工具及插件总结----20150113

响应式web设计可以说火不火是迟早的,下面就对于最开始的视口调试的方法汇总,希望有好的方法大家一起交流. 1.火狐:从Firefox升级到29.0之后就不直接支持Firesizer了. 先安装Add-on,然后就能使用Firesizer. Add-on的下载地址是https://addons.mozilla.org/en-US/firefox/addon/the-addon-bar/ 然后右下角就可以调试屏幕大小了. 提示:本人安装的35.0.1,在菜单下面的开发者选项中有响应式设计视图,这个其

响应式web设计与CSS3媒体查询

在之前一篇译文中,我们了解了响应式Web设计的概念.组成要素以及基本的实现思路.今天继续相关话题,我们将从前文介绍过的"弹性布局结构"这方面出发,通过一个具体的实例来深入学习. 如今的屏幕分辨率,小至320px(iPhone),大到2560px甚至更高(大显示器),变化范围极大.除了使用传统的台式机,用户会越来越多的通过手机.上网本.iPad一类的平板设备来浏览页面.这种情况下,固定宽度的设计方案将会显得越发不合理.页面需要有更好的适应性,其布局结构要做到根据不同的设备及屏幕分辨率进行

【01】《响应式Web设计:HTML5和CSS3实战》

[01] (魔芋:已看完.) [01]<响应式Web设计:HTML5和CSS3实战>(非扫描版)(全).pdf 共246页. 2013年1月出版. 读后感:适合入门的书籍,对于响应式布局,用了一个例子来讲解.后半部分讲了一些CSS3的新属性.阴影,transform,transition等. [英]ben frain 著 王永强 译

响应式web设计之CSS3 Media Queries

开始研究响应式web设计,CSS3 Media Queries是入门. Media Queries,其作用就是允许添加表达式用以确定媒体的环境情况,以此来应用不同的样式表.换句话说,其允许我们在不改变内容的情况下,改变页面的布局以精确适应不同的设备. 那么,Media Queries是如何工作的? 两种方式,一种是直接在link中判断设备的尺寸,然后引用不同的css文件: <link rel="stylesheet" type="text/css" href=