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

  可使用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. 翻页插件 jquery

    //css <style> * { padding:; margin:; list-style: none; } .wrapper { width: 100%; cursor: point ...

  2. Hibernate学习(七)

    Hibernate缓存 1.一级缓存:Session 级别的缓存 2.二级缓存: SessionFactory 级别的缓存 3.查询缓存:需二级缓存的支持,查询缓存依赖二级缓存 一级缓存 1.依赖于 ...

  3. ANSYS热分析简介1

    目录 1. ANSYS热分析简介 1.1 传导 1.2 热载荷分类 1.2.1 载荷施加 1.3 热分析分类 1.3.1 稳态热分析 1.3.2 瞬态热分析 1.3.3 非线性分析综述 2. 热分析单 ...

  4. mysql 官方读写分离方案

    mysql 8.0 集群模式下的自动读写分离方案 问题 多主模式下的组复制,看起来挺好,起始问题和限制很多.而且中断一个复制就无法配置了 多主模式下,innodbcluster 等于是无用的,不需要自 ...

  5. 于elasticsearch-rest-high-level-client 操作 Es

    安装Java:要求JDK为1.8及以上版本. 创建阿里云Elasticsearch实例:实例版本要求大于等于elasticsearch-rest-high-level-client的版本.本文创建一个 ...

  6. 【JavaWeb】导入Excel并进行校验

    一.需要实现的目标 1.界面编写 2.导入表读取表名,进行校验,后台匹配(判断此表的名称是否能够模糊匹配上) 3.确定表存在,读取其中的数据,暂存 4.正则表达式数据校验(判断是否已存在,数据是否符合 ...

  7. SQL SERVER用户表信息

    可以使用下面这个语句查看用户表的相关信息 RowCount 记录数 FileGroup 文件组 PartitionScheme 分区结构 IsPartitioned 是否分区 SELECT tbl.n ...

  8. SpringBoot常用注解解析

    @RestController 将返回的对象数据直接以 JSON 或 XML 形式写入 HTTP 响应(Response)中.绝大部分情况下都是直接以 JSON 形式返回给客户端,很少的情况下才会以 ...

  9. 并发队列之ArrayBlockingQueue

    上一篇我们说了并发队列中的LinkedBlockingQueue队列,这次我们看看ArrayBlockingQueue,看看名字,我们想象一下LinkedList和ArrayList的区别,我们可以知 ...

  10. 如何安装部署和优化Tomcat?(Tomcat部署和优化与压测,虚拟主机配置,Tomcat处理请求的过程)

    文章目录 前言 一:Tomcat安装部署 1.1:Tomcat简介 1.2:Tomcat核心组件 1.3:Tomcat处理请求的过程 1.3.1:请求过程基本解释 1.3.2:请求过程详细解释 1.4 ...