web响应式下的下拉菜单实例教程

HTML

两种菜单的HTML代码是不同的,因为到目前为止,你不能把<select>和<option>的样式设计成<a>有一样的外观和行为,反之也不能。所以二者都需要设计,而你做的就是把二者的标记都写出来。FSS的做法如下:

 代码如下 复制代码

<nav>
  <ul>
    <li><a href="/" class="active">Home</a></li>
    <li><a href="/collections/all">Books</a></li>
    <li><a href="/blogs/five-simple-steps-blog">Blog</a></li>
    <li><a href="/pages/about-us">About Us</a></li>
    <li><a href="/pages/support">Support</a></li>
  </ul>
 
  <select>
    <option value="" selected="selected">Select</option>
    <option value="/">Home</option>
    <option value="/collections/all">Books</option>
    <option value="/blogs/five-simple-steps-blog">Blog</option>
    <option value="/pages/about-us">About Us</option>
    <option value="/pages/support">Support</option>
  </select>
</nav>

继续下一步

CSS

默认我们利用display:none隐藏select菜单,这个很好接受。对于屏幕的阅读者,将隐藏的多余的菜单。

 代码如下 复制代码
nav select {
  display: none;
}

然后利用媒体查询,针对一些特定宽度的突然变化。你可以根据实际情况来设计(标准断点参考)

 代码如下 复制代码
@media (max-width: 960px) {
  nav ul     { display: none; }
  nav select { display: inline-block; }
}

现在需要维护两个菜单吗?

恩,这是一个需要担心的问题。或许你的菜单是动态创建的并且你不能很好的控制的输出,或许你有技术处理菜单但想确保不会偶然同步出现两个菜单。能找到的一种方式是从一开始就动态创建下拉菜单。利用JQuery,很容易就能实现:

 代码如下 复制代码
// Create the dropdown base
$("<select />").appendTo("nav");

// Create default option "Go to..."
$("<option />", {
   "selected": "selected",
   "value"   : "",
   "text"    : "Go to..."
}).appendTo("nav select");

// Populate dropdown with menu items
$("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();
});

下拉菜单是不是有点唐突?

有一点。小屏幕大多数是移动设备,并且他们对JavaScript的支持很友好,因此并不用太担心。

时间: 2024-08-01 07:22:32

web响应式下的下拉菜单实例教程的相关文章

excel2013制作下拉菜单的教程

excel2013打开要编辑的工作表,例子是一个班级名单,可以看到政治面貌目前还没有填写 接着我们找一个空白处,依次写入政治面貌的可能选项: 群众.共青团员.中共党员.民主党派 然后选中"政治面貌"这一列,点击菜单栏中的"数据",接着选择"数据验证",在下拉菜单中选择"数据验证". 在弹出的窗口中,选择验证条件,在下拉菜单中选择"序列",在下面的来源中选择 群众.共青团员.中共党员.民主党派 的位置,然后点

精心挑选的15个jQuery下拉菜单制作教程_jquery

今天本文就为大家挑选了25个非常好的 jQuery 下拉菜单制作教程和示例. Slide Down Box Menu with jQuery and CSS3 ( 演示 | 下载 ) Fancy Drop Down Menus Using CSS and JQuery. ( 演示 | 下载 ) Sliding Jquery Menu ( 演示 | 下载 ) Create Simple Dropdown Menu Using jQuery ( 演示 | 下载 ) Designing the Dig

Android开发Popwindow仿微信右上角下拉菜单实例代码_Android

先给大家看下效果图: MenuPopwindow: package com.cloudeye.android.cloudeye.view; import android.app.Activity; import android.content.Context; import android.graphics.drawable.ColorDrawable; import android.view.LayoutInflater; import android.view.View; import an

JavaScript简单下拉菜单实例代码_javascript技巧

本文实例讲述了JavaScript简单下拉菜单实例代码.分享给大家供大家参考.具体如下: 这是一款JavaScript实现的下拉菜单演示代码,带渐变效果的CSS+jQuery菜单,向下滑出型的菜单,最高支持两级,网上常见到的一种菜单风格,希望大家喜欢哦. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-simple-xlcd-down-menu-codes/ 具体代码如下: <!DOCTYPE html PUBLIC "-//W3C/

Android开发Popwindow仿微信右上角下拉菜单实例代码

先给大家看下效果图: MenuPopwindow: package com.cloudeye.android.cloudeye.view; import android.app.Activity; import android.content.Context; import android.graphics.drawable.ColorDrawable; import android.view.LayoutInflater; import android.view.View; import an

Web响应式设计案例:响应式设计开发Lot18

文章描述:有关 Web 响应式设计的 7 点启发. 开发者视角中的优秀并不意味着用户也有同样的感受.国外知名电子商务网站 Lot18 的高级前端开发人员Vince Allen,特别撰文讲述了采用响应式设计开发Lot18的背后故事和7条经验. 全文如下: 为Lot18 这样迅猛发展的电子商务公司工作是件激动人心的事情.知道几个月后,在开发团队面临一项重大决择的时候,我们狂热的情绪才逐渐平复下来.我们的困扰是:是 在网站的原有引擎(该引擎很有可能在网站发布几个月后就难以为继)上继续开发还是重新搭建全

CSS横向导航菜单实例教程

CSS横向导航菜单实例教程2,又一款css导航菜单.   <ul id="nav">      <li><a href="http://www.alixixi.com/">Div+CSS教程</a></li>      <li><a href="http://www.alixixi.com/" id="current">CSS布局实例</

Android仿美团分类下拉菜单实例代码_Android

本文实例为大家分享了Android仿美团下拉菜单的实现代码,分类进行选择,供大家参考,具体内容如下 效果图 操作平台 AS2.0 第三方框架:butterknife build.gradle dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.4.0' compile

jQuery+PHP+MySQL二级联动下拉菜单实例讲解_jquery

二级联动下拉菜单选择应用在在很多地方,比如说省市下拉联动,商品大小类下拉选择联动.本文将通过实例讲解使用jQuery+PHP+MySQL来实现大小分类二级下拉联动效果.实现效果:当选择大类时,小类下拉框里的选项内容也随着改变. 实现原理:根据大类的值,通过jQuery把值传给后台PHP处理,PHP通过查询MySQl数据库,得到相应的小类,并返回JSON数据给前端处理.XHTML首先我们要建立两个下拉选择框,第一个是大类,第二个是小类.大类的值可以是预先写好,也可以是从数据库读取. <label>