基于Web标准的UI组件 — 菜单(1)

web|web标准|菜单

UI Components Based on Web Standards - Menu (1)
  菜单(Menu)是最基本最常见的网页UI元素之一,它的主要功能包括:

  1. 引导用户发现网站的内容;
  2. 协助用户执行某一特定的操作。

  一个完整的菜单是一组菜单项(Menu Item)的集合,所有的菜单项在逻辑上应该是并列、平级的关系,它们指向相互之间没有隶属关系的内容或功能。

  菜单项可以是链接,也可以是另一组菜单项的集合,即二级菜单(Sub-Menu)。

菜单项的文案设计

  1. 明了:把意思表达清楚是一个菜单项文案的最基本要求。
    根据菜单的两种基本功能,“指向内容”的菜单项最好是一个概括内容的名词或名词性短语(如“诗歌”、“古典小说”),“执行操作”的菜单项最好是一个动词或动宾短语(如“订阅”、“订阅新闻”)。
  2. 直白:所有的网站是给用户看的,就按用户们习惯的大白话来和他们交流吧。
    举个例子:某门户网站提供了针对宽带用户的在线视频服务,指向这一服务的菜单项上写着“宽频”。中国的大多数互联网使用者都是比较初级而且不懂技术的,所以用“视频”或“在线视频”对他们来说会更加明白清楚(要不是“小电影”有某些其他意思,不然这个词可能更合适一些)。
  3. 简短:如果对“简短”原则需要更多解释的话,那就是不要为了“简短”而忽视了“明了”与“直白”。

基本的XHTML结构
  在XHTML的一大堆标签中,有一个被99.99%的Designer和99.98%的Developer忽视的标签:menu。它的用法与ul一样,内部可以包含一系列的li元素来构成菜单项,所以用它来构建菜单是再合适不过的了。如下:

<menu><li><a href="/movie/">电影</a></li><li><a href="/music/">音乐</a></li><li><a href="/software/">软件</a></li></menu>

  查看效果(例1)

  可能大多数人会用(或已经用了)ul来构建自己的菜单XHTML代码,这样也不错,但是现在你知道了有一个标签叫menu,赶快改过来吧(原装的好呀^_^)。

菜单项提示
  设计菜单项文案时,“简短”与“明了”是一对矛盾,在无法用几个字说得很明白的情况下,就需要“菜单项提示(Menu Item Tooltip)”了。当鼠标悬停在某个菜单项上的时候,会弹出相应的提示,对此菜单项的内容和功能作出更进一步的说明。

  XHTML中的title属性就是用来提供这项改善可用性的功能:

<a href="/movie/" title="最新院线电影下载">电影</a>

  查看效果(例2)

最简单的菜单
  到目前为止我们写好了菜单的XHTML代码并考虑了可访问性和易用性方面的问题,但这当然还称不上一个可以拿得出手的菜单。不过也有人把这样的菜单拿出来用的,比如apache.org这个bt的技术组织@_@,下面咱就帮他们改个稍微好看点的菜单。

  先把menu的缩进效果和li前面的点去掉,并定义一个合适的宽度:

menu{margin:0;padding:0;list-style:none;width:120px;}

  查看效果(例3)

  再为菜单项设置盒模型风格,注意IE和Firefox/Opera之间在盒模型上的差异:

menu li{/*高度20px*/height:20px;/*定义每个菜单项之间的间隔,并用!important*//*解决IE与Gecko浏览器之间的盒模型差异*/margin-bottom:4px !important;margin-bottom:2px;}

  接下来是最关键的一步,请仔细看注释。

menu a{/*定义a为块级元素,方便用盒模型属性定义外观*/display:block;/*定义尺寸*/width:100%;height:20px;/*盒模型风格*/background-color:F6F6F6;border:1px solid #DDD;/*文字样式*/font:11px arial;text-decoration:none;/*文字垂直居中*/line-height:20px;/*文字水平居中*/text-align:center;}

  查看效果(例4)

  接下来很轻松了,简单设置一下链接在四种状态下的样式,使菜单能够与鼠标覆盖事件交互:

menu a:link,menu a:visited{color:#333;}menu a:hover,menu a:active{color:#F50;}

  查看效果(例5)

  也可以把鼠标效果做得更明显一些,比如变化一下背景色:

menu a:hover,menu a:active{background-color:#FFEFE6;border:1px solid #F60;}

  查看效果(例6)

横向的菜单
  制作横向菜单的方法大致有两种:浮动与绝对定位。

  浮动法的思想很简单:让每一个菜单项都向左浮动,最终排成一横排。我们只需对上面的CSS做一些小小的改动就可以了:

menu{/*去掉menu的宽度,如果你的页面有宽度限制,那么也可以设在这里*/margin:0;padding:0;list-style:none;}menu li{/*指定li的长与宽*/height:20px;width:120px;/*让它向左浮动*/float:left;/*设置菜单项之间的间隔*/margin-right:4px !important;margin-right:2px;/*解决IE与Gecko浏览器之间的盒模型差异*/margin-bottom:4px !important;margin-bottom:2px;}

  查看效果(例7)

  这种方法不仅可以方便地创建横向菜单,它的思想同样用于在“流动布局”中罗列一些相似的内容,是一种应用很广泛的布局方法。

  再讲“绝对定位”的方法。很多人(包括一些Web标准实践经验非常丰富的人)对绝对定位有一种莫名其妙的反感,I don't know why。事实上它是一种极其重要的CSS布局方法,只要在使用时掌握那么一点点小窍门,你不会碰到让人沮丧的布局错乱或者其他什么古怪的结果。当然我也不是说绝对定位是万能的,“合适的才是最好的”,何时使用取决于具体的情况。

  回到菜单的制作上,如果你的菜单项长短不一,或者高低起伏,总之是不那么规则的时候,就可以使用绝对定位来实现。首先需要对上面的XHTML作一些小改动:给每个菜单项一个id

<menu>  <li id="miMovie"><a href="/movie/" title="DVDRip">电影</a></li>  <li id="miMusic"><a href="/music/" title="mp3">音乐</a></li>  <li id="miSoftware"><a href="/dl/" title="共享">软件</a></li></menu>

  三个菜单项的id有一个共同的前缀——mi(即Menu Item的缩写),用于和其他元素的ID命名区分。这种命名方式纯粹是我的个人喜好,来自于以前用delphi和VB开发软件时的习惯。另外一些缩写包括mnu(Menu,菜单)、btn(Button,按钮)、pnl(Panel,面板)、lst(List,列表)、tab(Tab Menu,选项卡)等等。这样做的好处是可以有效防止id命名重复,同时在CSS中也可以只看命名就知道元素的UI类型。

  接下来就是CSS的工作了。先给menu定好长宽、去除缩进等等:

menu{width:360px;height:20px;margin:0;padding:0;}

   接下来的一步很重要,给menu指定为相对定位:

menu{position:relatvie;width:360px;height:20px;margin:0;padding:0;}

  如果跳过了这一步,后面你会发现菜单项的“绝对定位”并不是以menu为参照物,而是以浏览器窗口的左上角为坐标原点,当然这不是我们想要的效果。

  再设置菜单项共同的属性和相同的纵坐标:

menu li{position:absolute;top:0;list-style-type:none;width:120px;height:20px;line-height:20px;text-align:center;}

  最后用id选择单个的菜单项指定其“个性”的横坐标属性:

#miMovie{left:0;}#miMusic{left:120px;}#miSoftware{left:240px;}

  查看效果(例8)

  绝对定位对a标签的定义与浮动法基本一致,请查看例8的源代码。

  以上讲到的技术与技巧足以应付一般的菜单制作了,apache.org也应该会对我们修改后的菜单感到满意^_^。在下一篇文章中我会更详细地介绍基于Web标准制作菜单的高级应用和技巧。

转自:动态网制作指南 www.knowsky.com

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索menu
, 定位
, 菜单
, px
, 效果
一个
web前端ui组件库、web ui组件、web ui组件库、淘宝前端web ui组件库、vue ui组件库 webapp,以便于您获取更多的相关知识。

时间: 2024-12-29 20:06:14

基于Web标准的UI组件 — 菜单(1)的相关文章

基于Web标准的UI组件 — 树状菜单(2)_javascript技巧

从这篇开始,你需要拥有一些Javascript和DOM相关的知识才能顺利地学习下去.由于Javascript和DOM都不是三言两语可以说完的东西,如果你对它们还不熟悉,请先到这里学习一下再继续:Javascript在线教程(英文).DOM在线教程(英文). getElementsByClassName() 为了从一大堆HTML代码中找出我们的树状菜单(也许有多个),我们先来实现一个通过className找DOM节点的方法:getElementsByClassName.这是对浏览器自有DOM方法的

用Fireworks8做个符合web标准的弹出菜单

web|web标准|菜单 Fireworks8做下拉菜单的功能较上一版本有很大程度 的增强,并开始兼容web标准,代码也减少了很多,JS从原来的30多K降到现在的2K,可访问性:IE.Firefox.Opera. 1.新建文件,做几个按钮,这部分相信大家都会做. 2.在按钮上点左键,在弹出菜单上选添加弹出菜单,会出现如下的对话框. 里面有四个选项卡,你只要按照需要选取就可以了. 3.输出HTML 导出选项,默认是输出dw xhtml,应用CSS和将CSS写入外部文件的.文件名你需要设置一下,不然

基于HTML5的CSS框架组件BootFlat

BootFlat 是一款基于 Bootstrap 的 Flat UI 组件,跟原生的Bootstrap框架相比,BootFlat提供了更多的页面组件,同时增加了页面布局功能.与Flat UI相比更为突出的是BootFlat可以帮助你更快速的利用HTML5实现Web App开发. BootFlat的特点 BootFlat是基于bootstrap3.2.0,便于快速的开发web和mobile app的UI框架 Bootflat组件基于HTML5和CSS3设计,提供sass文件和多种色值,便于开发者修

web标准,我们去向何方?

web|web标准 原文作者:Veerle  原文出处:http://veerle.duoh.com 译者注:本文是"你应该关注web标准的真正原因"一文发表后veerle写的一篇感想文章,作者提了2个想法,却引来各种意见和建议,我将部分评论附在文后.可以看到国外技术类blog讨论的气氛也是非常好的,至少参与的人很多.有兴趣的建议看看原文. 译文 关于web标准,我已经了解很多,并且正在使用.我也很清楚的认识到,使用web标准不是为了能够骄傲的说"嗨,你的站点通过标准校验了吗

web标准,我们去向何方?一些想法...

web|web标准 原文作者:Veerle 原文出处:veerle.duoh.com 原文发表时间:2004年6月14日 译者注:本文是"你应该关注web标准的真正原因"一文发表后veerle写的一篇感想文章,作者提了2个想法,却引来各种意见和建议,我将部分评论附在文后.可以看到国外技术类blog讨论的气氛也是非常好的,至少参与的人很多.有兴趣的建议看看原文. 译文 关于web标准,我已经了解很多,并且正在使用.我也很清楚的认识到,使用web标准不是为了能够骄傲的说"嗨,你的

通向web标准之路

web|web标准 作者前言 今天下午,我的一个朋友问我:对于一个想了解web标准的老网页设计师有什么建议. 我想将我的email回复贴在这里让更多人看见将是一个很好的范例.我的回复是:这有一个全面的,非正式的,有些罗嗦的指南,送给所有听说过web标准,希望使用web标准却又不知道从哪里开始设计师. 正文 首先不要急着开始!在做任何事情之前做好2个心理准备,这对你的学习过程是最重要的事情: 1).学习需要时间,要循序渐进: 2).前进的过程中会遇到挫折. 但是你并不孤独,我们中许多人正在投入到学

解读HTML:WEB标准的误解

在HTML4 Elements中共计有91个标签,然而在这么多的标签中经常被使用到的标签不到四分之一,在这些常用的标签中有两个标签是属于最通用型的--div.span,这两个结构性的标签因为本身不带呈现样式及语义而被广泛的用于网页制作中,再加上之前很多人直接把WEB标准误解为就是div+css,于是在一个页面里出现了特多的div或者是span标签,尽管这些地方本身有更符合语义的标签来实现. Table式的页面布局因为其本身的简便以及有Dreamweaver这样的可视化操作的Web制作软件的存在,

详解WEB标准的误解

在HTML4 Elements中共计有91个标签,然而在这么多的标签中经常被使用到的标签不到四分之一,在这些常用的标签中有两个标签是属于最通用型的--div.span,这两个结构性的标签因为本身不带呈现样式及语义而被广泛的用于网页制作中,再加上之前很多人直接把WEB标准误解为就是div+css,于是在一个页面里出现了特多的div或者是span标签,尽管这些地方本身有更符合语义的标签来实现. Table式的页面布局因为其本身的简便以及有Dreamweaver这样的可视化操作的Web制作软件的存在,

学习一种符合WEB标准的导航菜单例子

web|web标准|菜单|导航 <html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>css菜单演示</title><style type=