为列表添加定制的项目符号

  可使用list-style-image属性:缺点是对项目符号图像的位置的控制能力不强。

  常用的方法:使用list-style-type来关闭项目符号,将定制的项目符号作为背景添加在列表元素上,使用背景图像的定位属性精准的控制自定义项目符号的对准方式。

      • 在列表项左边添加内边距,为符号留出所需的空间。
      • 将项目符号作为背景图像应用于列表项
      • 如果知道列表项的内容不会跨越多行,可以将垂直位置设置为middle或50%,从而让项目符号垂直居中。 
<ul>
<li>Read emails</li>
<li>Write chapter</li>
<li>Go shopping</li>
<li>Cook dinner</li>
<li>Watch Lost</li>
</ul>
<style type="text/css">
ul {
margin: 0;
padding: 0;
width: 20em;
list-style-type: none; //关闭项目符号
} li {
background: url(img/tick.png) no-repeat 0 50%; //项目符号垂直居中
padding-left: 30px;
}
</style>

得到的结果:

创建基本的垂直导航条

<ul class="nav">
<li class="selected"><a href="home.htm">Home</a></li>
<li><a href="about.htm">About</a></li>
<li><a href="services.htm">Our Services</a></li>
<li><a href="work.htm">Our Work</a></li>
<li><a href="news.htm">News</a></li>
<li class="last"><a href="contact.htm">Contact</a></li>
</ul>
<style type="text/css">
ul.nav {
margin: 0; //外边距设置为0
padding: 0; //内边距设置为0
width: 8em; //设置福列表的宽度,代码更容易维护
list-style-type: none; //去掉默认的项目符号
background-color: #8BD400; //设置浅绿色背景
border: 1px solid #486B02; //设置深绿色的边框
border-bottom: none;
} ul.nav li {
display: inline; /* 在IE6上列表项下添加了额外的空间,所以需要在列表项上设置display为inline*/
} ul.nav a {
display: block; //创建与按钮相似的单击区域
color: #2B3F00; //设置链接文本的颜色
text-decoration: none; //关闭下划线
border-top: 1px solid #E4FFD3; //为创建斜面效果,顶边框设置比背景浅
border-bottom: 1px solid #486B02;//为创建斜面效果,顶边框设置比背景深
background: url(img/arrow.gif) no-repeat 5% 50%; //列表项前面的图标,及位置
padding: 0.3em 1em;
} ul.nav a:hover,
ul.nav a:focus,
ul.nav .selected a {
color: #E4FFD3;
background-color: #6DA203;
}
</style>

结果如下:

创建简单的水平导航条

<ol class="pagination">
//rel属性表示结果集中的前一个和下一个页面,规定当前文档与被链接文档之间的关系
<li><a href="search.htm?page=1" rel="prev">Prev</a></li>
<li><a href="search.htm?page=1">1</a></li>
<li class="selected">2</li>
<li><a href="search.htm?page=3">3</a></li>
<li><a href="search.htm?page=4">4</a></li>
<li><a href="search.htm?page=5">5</a></li>
<li><a href="search.htm?page=3" rel="next">Next</a></li>
</ol>
<style type="text/css">
body {
font-family: "Myriad Pro", Frutiger, "Lucida Grande", "Lucida Sans", "Lucida Sans Unicode", Verdana, sans-serif;
font-size: 1.4em;
margin-top: 4em;
} ol.pagination {
margin: 0; //去掉外边距
padding: 0; //去掉内边距
list-style-type: none; //去掉列表样式
}
//让列表水平排列而不是垂直排列,可以将display属性设置为inline,但是对于比较复杂的水平列表样式,如果浮动列表项,然后使用外边距把它们分开,会更灵活。
ol.pagination li {
float: left; //向左浮动
margin-right: 0.6em; //设置右外边距
} ol.pagination a,
ol.pagination li.selected { //对列表项应用样式
display: block;
padding: 0.2em 0.5em;
border: 1px solid #ccc; //设置边框
text-decoration: none; //去掉下划线
} ol.pagination a:hover,
ol.pagination a:focus,
ol.pagination li.selected { //当鼠标悬停在链接上时,应用不同样式
background-color: blue;
color: white;
} ol.pagination a[rel="prev"], //对于prev和next链接应用不同的样式
ol.pagination a[rel="next"] {
border: none; //去掉边框
} ol.pagination a[rel="prev"]:before { //在列表的前面加箭头
content: "\00AB"; //“00AB”添加双左箭头
padding-right: 0.5em;
} ol.pagination a[rel="next"]:after { //在列表的后面加箭头
content: "\00BB"; “00BB”添加双右箭头
padding-left: 0.5em;
}
</style>
让列表水平排列而不是垂直排列,可以将display属性设置为inline,但是对于比较复杂的水平列表样式,如果浮动列表项,然后使用外边距把它们分开,会更灵活。

创建图形化导航条(水平)

<ul class="nav">
<li class="first"><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">News</a></li>
<li><a href="#">Products</a></li>
<li><a href="#">Services</a></li>
<li><a href="#">Clients</a></li>
<li><a href="#">Case Studies</a></li>
</ul>
<style type="text/css">
body {
font: 76%/1.8 "Lucida Grande", Verdana, Arial, Helvetica, sans-serif;
background-color: #fff;
} ul.nav {
margin: 0;
padding: 0;
overflow: hidden; //清理li浮动造成的父元素高度为0
width: 74em; //设置整个导航条的宽度
background: #FAA819 url(img/mainNavBg.gif) repeat-x; //以重复的橘红色渐变作为背景
list-style: none;
text-transform: uppercase; //让链接全部大写
} ul.nav li {
float: left; //利用浮动让列表垂直显示
white-space: nowrap; // 文本不会换行,文本会在在同一行上继续,直到遇到 <br> 标签为止。
} ul.nav a {
display:block; //让链接表现的像按钮
padding: 0 2.96em;
line-height: 2.1em; //使用行高让链接文本垂直居中
background: url(img/divider.gif) repeat-y left top; //在链接之间创建分隔线,可以通过在列表项或锚上设置水平边框。为简单,在锚链接应用一个背景图像
text-decoration: none; //关闭下划线
color: #fff; //链接颜色设置为白色
} ul.nav a:hover ,
ul.nav a:focus { //设置翻转状态
color: #333;
} ul.nav li:first-child a { //去掉第一个链接不必要的分割线
background: none;
}
</style>

当li元素浮动时,不再占据文档流中的任何空间,所以,它的父元素实际上没有内容,它就会收缩,从而会隐藏列表背景,所以需要办法让父元素包含浮动的子元素,方法为3种清除浮动的方法 ,最常用的是overflow:hidden技术.

结果如下:

简化的“滑动门”标签页式导航

使用一个大图像和一个侧边图像创建标签页,随着标签页中文本的扩展,大图像的更多部分露出来,较小的图像留在左边,盖住大图像的硬边缘,下述实例中,大图像为tab-right.gif,侧边图像为tab-left.gif

tab-left.gif(应用于锚链接)tab-right.gif(应用于li)

<ul id="mainNav">
<li class="first"><a href="#">Home</a></li>
<li><a href="about.htm">About</a></li>
<li><a href="news.htm">News</a></li>
<li><a href="products.htm">Products</a></li>
<li><a href="services.htm">Services</a></li>
<li><a href="clients.htm">Clients</a></li>
<li><a href="casestudies.htm">Case Studies</a></li>
</ul>
<style type="text/css">
body {
font: 76%/1.8 "Lucida Grande", Verdana, Arial, Helvetica, sans-serif;
background-color: #fff;
} ul {
margin: 0;
padding: 0;
overflow: hidden; //清除li浮动
width: 72em;
list-style: none;
text-transform: uppercase;
} ul li {
float: left; //向左浮动,以产生水平效果
background: url(img/tab-right.gif) no-repeat top right; //应用right背景图像,形成标签页的右边缘
} li a {
display: block; //让锚显示为块级元素使得整个区域可单击
padding: 0 2em;
line-height: 2.5em; //设置行高控制高度,宽度由内容的宽度控制
background: url(img/tab-left.gif) no-repeat top left; //应用left背景,并向左对齐。 当标签页改变尺寸时,这个图像总是对准左边,盖在大图上面,盖住左边的硬边缘
text-decoration: none;
color: #fff;
float: left; //确保这种技术在Mac上的IE 5.2中有效
} ul a:hover { //创建翻转效果
color: #333;
}
</style>

结果如下:

Sukerfish下拉菜单

<ul class="nav">
<li><a href="/home/">Home</a></li>
<li><a href="/products/">Products</a>
<ul>
<li><a href="/products/silverback/">Silverback</a></li>
<li><a href="/products/fontdeck/">Font Deck</a></li>
</ul>
</li>
<li><a href="/services/">Services</a>
<ul>
<li><a href="/services/design/">Design</a></li>
<li><a href="/services/development/">Development</a></li>
<li><a href="/services/consultancy/">Consultancy</a> </li>
</ul>
</li>
<li><a href="/contact/">Contact Us</a></li>
</ul>
<style type="text/css">
body {
font-family: "Myriad Pro", Frutiger, "Lucida Grande", "Lucida Sans", "Lucida Sans Unicode", Verdana, sans-serif;
font-size: 1.4em;
margin-top: 4em;
} ul.nav, ul.nav ul { //给所有的(包括嵌套的)列表设置外边距等等
margin: 0;
padding: 0;
list-style-type: none;
float: left; //清除li的浮动,其中的一个办法是让父元素也浮动
border: 1px solid #486B02;
background-color: #8BD400;
} ul.nav li {
float: left; //产生水平效果
width: 8em; //设置宽度
} ul.nav li ul {
width: 8em; //与列表的宽度相等
position: absolute;
left: -999em; //将嵌套的ul隐藏在屏幕左边之外
margin-left: -1px;
} .nav li:hover ul { //添加鼠标悬停伪选择器
left: auto; //使得下拉菜单的位置改回正常位置,这样下拉菜单就会重新出现
}
/*把导航链接设置为块级元素,修改列表外观,设置背景颜色和斜面边框*/
ul.nav a {
display: block;
color: #2B3F00;
text-decoration: none;
padding: 0.3em 1em;
border-right: 1px solid #486B02;
border-left: 1px solid #E4FFD3;
} ul.nav li li a {
border-top: 1px solid #E4FFD3;
border-bottom: 1px solid #486B02;
border-left: 0;
border-right: 0;
} ul.nav li:last-child a {
border-right: 0;
border-bottom: 0;
} ul a:hover,
ul a:focus {
color: #E4FFD3;
background-color: #6DA203;
}
</style>

结果如下:

ch6 列表和导航条的更多相关文章

  1. CSS列表及导航条

    大多数网页中都包含某种形式的列表,今天我们就来联系几个基本的导航条.   垂直导航条 注意要点: 去掉默认的项目符号(list-style-type:none),将外边距和内边距都设为0. 以em设置 ...

  2. CSS列表(新闻列表、导航条)常见写法

    以下面这个UL做演示 <ul> <li><a href="#"><span>2014-4-1</span>教育</ ...

  3. 1.bootstrap练习笔记-导航条

    bootstrap练习笔记 1.关于导航栏   官网链接:http://v3.bootcss.com/components/#nav 结构大概是这样的: nav标签标识导航栏 class为navbar ...

  4. 纯CSS实现下拉菜单及下拉容器等(纯CSS实现导航条及导航下拉容器)

    虽然网上类似甚至相同的案例有很多,但是我还是写下,以记下笔记,也可供大家参考 希望大家可以指导批评~~ 首先我们以列表ul li 来开始我们菜单也可以说导航条的制作: 在页面中我们首先构建以下XHTM ...

  5. 【转】一个DIV+CSS代码布局的简单导航条

    原文地址:http://www.divcss5.com/shili/s731.shtml 简单的DIV CSS代码布局实现导航条 一个蓝色主题的导航条布局案例,本CSS小实例,采用DIV CSS实现. ...

  6. css -- 导航条

    1.垂直导航条 HTML: <ul class="nav"> <li><a href="">Home</a>&l ...

  7. Bootstrap_导航条

    一.基础导航条 在制作一个基础导航条时,主要分以下几步: 第一步:首先在制作导航的列表(<ul class=”nav”>)基础上添加类名“navbar-nav” 第二步:在列表外部添加一个 ...

  8. Bootstrap系列 -- 38. 基础导航条

    在制作一个基础导航条时,主要分以下几步: 第一步:首先在制作导航的列表(<ul class=”nav”>)基础上添加类名“navbar-nav” 第二步:在列表外部添加一个容器(div), ...

  9. 夺命雷公狗---DEDECMS----15dedecms首页栏目列表页导航部分完成

    我们在点击导航页面的连接时候我们需要我们的连接跳到指定的模版页面,而不是随便跳到一个指定的A连接标签: 所以我们首先要将前端给我们的栏目列表模版拷贝到目录下,然后就可以创建栏目列表页面了,但是名字我们 ...

随机推荐

  1. Centos5.5更新源

    将之前的CentOS-Base.repo文件里的内容换成如下内容 vi /etc/yum.repos.d/CentOS-Base.repo # CentOS-Base.repo## The mirro ...

  2. 微信小程序开发调试阶段不校验请求域名

    在微信小程序开发官网上有说明: 在开发者工具的右上角有详情选项,可以勾选不校验合法域名,之后就可以与本地ip进行通信了!

  3. 【转载】IntelliJ IDEA配置JUnit进行单元测试

    前提条件 安装JDK,并配置好环境变量 工程已解决JUnit依赖关系(pom.xml) IDEA中JUnit配置 IDEA自带一个JUnit插件,打开Settings窗口搜索junit,如图:   图 ...

  4. ipfs camp course c demo exercise 1

    目录 aim: my bugs 解决ipfs 的 cros 问题的方法 result final code for c1 aim: 首先咱们把 broswer 和 自己的api 连接起来(要显示出来自 ...

  5. 电源适配器DC插头规格

    电源适配器 DC 插头的内径外径规格有 (单位为 MM) :2.0*0.72.35*0.72.35*1.12.5*0.73.5*1.13.5*1.354.0*1.75.5*2.15.5*2.54.75 ...

  6. Atcoder Grand Contest 039B(思维,BFS)

    #define HAVE_STRUCT_TIMESPEC#include<bits/stdc++.h>using namespace std;int col[207],s[207],n;c ...

  7. mcast_set_if函数

    #include <errno.h> #include <string.h> #include <net/if.h> #include <sys/ioctl. ...

  8. pexpect &&pxssh

    python 3.6 pip  install pexpect #!/usr/bin/python3 import os import sys curPath = os.path.abspath(os ...

  9. Hibernate面试题(七)--load与get区别

    1. load方式是延迟加载,只有属性被访问的时候才会调用sql语句 get方式是非延迟加载,无论后面的代码是否会访问到属性,马上执行sql语句 2. 都通过id=500去获取对象1. get方式会返 ...

  10. Django 学习之Rest Framework 视图集与Routers与扩展功能

    一.视图集使用 使用视图集ViewSet,可以将一系列逻辑相关的动作放到一个类中: list() 提供一组数据 retrieve() 提供单个数据 create() 创建数据 update() 保存数 ...