使用CSS样式为 ul列表增加样式值垂直导航

 下面我们讲一下如何利用CSS来控制ul的显示样式,是ul在垂直排列效果的基础上实现

  (1)为列表添加背景颜色;【使用DIV控制背景】

  (2)在每个列表项开头添加显示图片;

  如果对HTML的ul列表控件不是很熟悉的话,请参考我的另一篇文章《HTML学习笔记之列表控件 无序列表 ul(Unordered List) 、有序列表 ol(Ordered List) 、定义列表 dl(Definition List)》。

  实现这个效果总结了三种方式,下面依次介绍:

  

  先来一个无样式的ul列表:

  

<div><h4>简单列表</h4>
    <ul>
        <li><a href="http://www.baidu.com/" target="_blank">HomePage</a></li>   
        <li><a href="http://www.baidu.com/" target="_blank">Div+CSS教程</a></li>   
        <li><a href="http://www.baidu.com/" target="_blank">CSS布局实例</a></li>   
        <li><a href="http://www.baidu.com/" target="_blank">CSS2.0教程 </a></li>   
        <li><a href="http://www.baidu.com/" target="_blank">CSS在线手册</a></li>   
        <li><a href="http://www.baidu.com/" target="_blank">Web标准</a></li>   
        <li><a href="http://www.baidu.com/" target="_blank">XHTML教程</a></li> 
    </ul>
</div>

 

image 

接着我们看看CSS更改ul列表的代码:

方式一:在li元素中使用List-Style-image控制属性增加图标

/*
    =======================================================================================
    更改列表符号为图标的无序列表
    
    使列表符号图片和列表文字对齐
    =======================================================================================
    =======================================================================================
    方法一:使用list-style-image属性对齐
            
            注意: 需要vertical-align:bottom 的属性值配合使用
    =======================================================================================
*/
#ImageNav1
{
    
     background-color:#22C1EF;                      /* div背景色 */
    }
    
#ImageNav1 ul
{
    
    white-space: nowrap;                            /* 文本换行:强制一行显示 */
    }
    
#ImageNav1 li{
                                                    /* margin 和 padding的顺序:上、右、下、左 */
    margin: 0px 0px 0px 30px;                       /* margin 左边框30像素*/
    padding:0px 0px 0px 5px;                        /* 上、右、下、左 */
    list-style-type:none;                           /* 无列表符号样式 */
    list-style-image:url('../img/17_48x48.png');    /* 列表项符号引用的图片 */
    border:solid 1px Black;                         /* 边缘样式 */
    }
    
#ImageNav1 li a
{
    
    line-height:48px;       /* 行间距:48px */
    vertical-align:bottom;  /* 使文本上下居中对其*/
    }

效果:

方式二:在li中使用img 和 a 元素结合模拟“方式一”效果

/*
    =======================================================================================
    方法二:使用在li中使用img 和 a 元素结合模拟方法一的效果
            
            注意: 需要在 img元素 中设定vertical-align:middle属性
                       在 a元素   中设定vertical-align:middle属性是无效的
    =======================================================================================
*/
 
#ImageNav2{
     
     background-color:#22C1EF;      /* div背景色 */
    }
#ImageNav2 ul{
    
    white-space: nowrap;            /* 文本换行:强制一行显示 */
    }
#ImageNav2 li{
                                    /* margin 和 padding的顺序:上、右、下、左 */
    margin: 0px 0px 0px 30px;       /* margin 左边框30像素*/
    padding:0px 0px 0px 5px;        /* 上、右、下、左 */
    list-style-type:none;           /* 无列表符号样式 */
    }
 
#ImageNav2 li a{
    
    padding: 0px 0px 0px 5px;       /* 文字与图片的距离 */
    }
#ImageNav2 li img{
    
    vertical-align:middle;          /* 是图片和文字居中对齐*/
    }

效果:

方式三:在li中使用background-image属性实现“方式一”效果

/*
    =======================================================================================
    方法三:在li中使用background-image属性
            
            注意: li中的 line-height 和 background-position 属性
    =======================================================================================
*/
#ImageNav3{
     
     background-color:#22C1EF;                      /* div背景色 */
    }
#ImageNav3 ul{
    
    white-space: nowrap;                            /* 文本换行:强制一行显示 */
    }
#ImageNav3 li{
                                                    /* margin 和 padding的顺序:上、右、下、左 */
    margin: 0px 0px 0px 30px;                       /* margin 左边框30像素*/
    padding:0px 0px 0px 5px;                        /* 上、右、下、左 */
    list-style-type:none;
    line-height:48px;                               /* 行间距 */
    text-indent:48px;                               /* 文字缩进48像素,避免与图表重叠 */
    background-image:url('../img/17_48x48.png');    /* 背景图片充当列表符号图像 */
    background-repeat:no-repeat;                    /* 背景样式不重复 */
    }

效果:

  

 

以上就是使用CSS来显示ul元素的简单方法,如果要调整 图片和文字之间距离请参考样式中 margin 和 padding 属性。

 

 

posted @ 2010-10-30 16:01  bobbychen  阅读(6692)  评论(0编辑  收藏  举报