[翻译]标记语言和样式手册 Chapter 1 清单(6)
作者:zhaozy 来源:3user.com 发布时间:2008-01-15 10:26:00
导航清单
在我的个人网站(www.simplebits.com)里我分享了几种将无序清单转化为水平导航条的方法,用普通的,结构化的XHTML就像我们的食品清单示例那样创造一个类似分页标签(Tab)的效果.
我们把那个食品清单转换成一个网上超市的导航条(这个超市只卖几种东西就是了...).
我们想要这个导航条以水平的方式呈现,并且能够在鼠标划过,选中时有某种强调显示,以便我们模拟分页标签的效果.
首先,我们为清单加上一个id,这样我们就可以为它单独定义css样式了,同时我们也将把每个食品项目转成链接.
<ul id="minitabs">
<li><a href="/apples/">Apples</a></li>
<li><a href="/spaghetti/">Spaghetti</a></li>
<li><a href="/greenbeans/">Green Beans</a></li>
<li><a href="/milk/">Milk</a></li>
</ul>
现在,开始加上一些辅助的css:
#minitabs{
margin:0;
padding:0 0 20px 10px;
border-bottom:1px solid #696;
}
#minitabs li{
margin:0;
padding:0;
display:inline;
list-style:none;
}
在这里我们已经完成了去掉默认圆点符号和行内缩进的工作,我们也把 display设置成inline,往垂直清单转化成水平清单迈出了第一步,同时我们也加上了底部边框以便区分出整个链接组.
把清单转化成水平导航条的第二步,是将我们的链接全部浮动到左边显示,我们同样为所有的超链接加上简单的样式:定义外边距和内补丁的大小:
#minitabs {
margin: 0;
padding: 0 0 20px 10px;
border-bottom: 1px solid #696;
}
#minitabs li {
margin: 0;
padding: 0;
display: inline;
list-style-type: none;
}
#minitabs a {
float: left;
line-height: 14px;
font-weight: bold;
margin: 0 10px 4px 10px;
text-decoration: none;
color: #9c9;
}
在这里我们将清单中所有的元素都定义float:left,是为了让他们能水平显示排列于一行之内,同时我们也加上了了一些色彩,把链接改成粗体,拿掉了链接底部的下划线.
然后,为鼠标滑过或选中的链接创建一个模拟分页标签的边线:
#minitabs {
margin: 0;
padding: 0 0 20px 10px;
border-bottom: 1px solid #696;
}
#minitabs li {
margin: 0;
padding: 0;
display: inline;
list-style-type: none;
}
#minitabs a {
float: left;
line-height: 14px;
font-weight: bold;
margin: 0 10px 4px 10px;
text-decoration: none;
color: #9c9;
}
#minitabs a.active, #minitabs a:hover {
border-bottom: 4px solid #696;
padding-bottom: 2px;
color: #363;
}
#minitabs a:hover {
color: #696;
}
为了强调链接,我们在鼠标划过或选中时增加一个4像素高的底边,我们也可以使选中的<a>标签保持强调效果,只要加上class="active":
<li><a href="/spaghetti/" class="active">spaghetti</a></li>
这个 active类别与 a:hover的共用相同的css样式.(图 1 - 7)
图1 - 7
我在自己的网站(www.simlpebits.com)以及2003年7月重构Inc.com(www.inc.com)里面都用到了这个技巧.如果你需要更多的示例代码,可以自由访问这两个网站并查看他们的源代码.
只需要加上一些内补丁和边框,就可以达到各种类似分页标签的效果了,到目前为止,我们甚至连一张图,一句javascript都没有使用,而仅仅只用到了基本的xhtml结构就构成了我们的食品清单,这实在是太棒了!


猜你喜欢
- PyQt的文本操作的继承关系:QTextBrowser ( QtGui.QTextEdit)其中QTextEdit具有的功能函数:copy(
- 本文实例为大家分享了JSP实现客户信息管理系统的具体代码,供大家参考,具体内容如下项目示意图大概这样吧。我自己画的 登录界面代码index.
- 如何删除某个字段的最后四个字符我们有的时候在进行数据操作的时候,会遇到一些情况,例如有的时候,某个字段会多出现多余的东西。比如城市code
- 导入相关库import time1. 时间戳1.1 time.time()time.time()可以得到的是 时间戳 。即 1970年1月1
- 1 简介费老师我在几年前写过的一篇文章(https://www.jb51.net/article/243348.htm)中,介绍过tqdm这
- 1. 吊顶下拉菜单的键盘可用性改进无障碍访问貌似最近比较火,大家都在聊,其中一块就是键盘的可访问性。我们在首页上作了些调整,让用户可以通过键
- 随着搜索引擎大兴, 排列在前的网站引入大量流量. 无论是搜索页面的广告还是查出来的结果, 与搜索者的目标匹配度都比较高 (如果搜索引擎足够智
- 用python做大型工程时,经常会出现import问题。比如,当你import另一个py文件时,这个py不存在于你的运行路径下,便会报错。大
- <input id="workname" style="width: 200px" name=
- 本文实例讲述了Python抓取某只基金历史净值数据。分享给大家供大家参考,具体如下:http://fund.eastmoney.com/f1
- 参数说明以官方说明为例,gather()函数需要三个参数,输入input,维度dim,以及索引indexinput必须为Tensor类型di
- <html> 题:<br /> 有n个直线最多可以把一个平面分成多少个部分<br /><br /&
- 素数简介质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。方法1def primeNUM(
- 案例故事:百度网盘非会员大量上传文件,会弹出:“上传文件数量超出500个现在,开通超级会员后可继续上传”,其实是限制拖入500张相片,并非限
- 前言在ES6新增的数组方法中,包含了多个遍历方法,其中包含了用于筛选的filter和reducefilter主要用于筛选数组的filter方
- tensorflow里面提供了实现图像进行裁剪和填充的函数,就是tf.image.resize_image_with_crop_or_pad
- pytorch中自定义backward()函数。在图像处理过程中,我们有时候会使用自己定义的算法处理图像,这些算法多是基于numpy或者sc
- 在将数据库从MSSQL迁移到MySQL的过程中,基于业务逻辑的要求,需要在MySQL的自增列插入0值。在MSSQL中是这样完成的: stri
- 1.获取当前时间的两种方法:import datetime,timenow = time.strftime("%Y-%m-%d %
- 一、前言有时候觉得电影真是人类有史以来最伟大的发明,我喜欢看电影,看电影可以让我们增长见闻,学习知识。从某种角度上而言,电影凭借自身独有的魅