css实现导航栏

导航栏如何实现?

以水平导航为例,用块元素还是用内联元素呢?
理论上应该用内联元素,因为块元素会换行。
但事实上用的是块元素li。因为可以让块元素不换行。有两个方法

inline属性

举个例子

<!DOCTYPE html>
<html>
<head>
<style>
ul
{
list-style-type:none;

}

li {
    display:inline;
    background-color:yellow;
    
}
</style>
</head>
<body>
<ul>
<li><a href="#home">Home</a></li>
<li><a href="#news">News</a></li>
<li><a href="#contact">Contact</a></li>
<li><a href="#about">About</a></li>
</ul>
</body>
</html>

结果如图

image.png

总结,inline属性把block元素变成了inline元素。list-style-type:none;是去掉li自带的小圆点的。

float方法

<!DOCTYPE html>
<html>
<head>
<style>
ul
{
list-style-type:none;
}

li {
    float:left;
    background-color:yellow;
    
}
</style>
</head>
<body>
<ul>
<li><a href="#home">Home</a></li>
<li><a href="#news">News</a></li>
<li><a href="#contact">Contact</a></li>
<li><a href="#about">About</a></li>
</ul>
</body>
</html>

结果如图

image.png

有个问题啊 ,文字靠的太近了.
那给l设置个宽度

li {
    float:left;
    background-color:yellow;
    width:60px;
    
}

结果如图

image.png

想鼠标悬停时变色,再加这么一句

a:hover {
    background-color:red;
}

hover是个伪类选择器

实践中还会有个问题
如下图,点击文字可以,但是点击文字稍微旁边就不行,这不友好
。设置

a {disply:block} 就好了。
![image.png](http://upload-images.jianshu.io/upload_images/33455-abd6f350855a7219.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

##总结
水平导航的关键问题是怎么把li这个block元素让他不换行排列~
##参考
[CSS 导航条](http://www.w3school.com.cn/css/css_navbar.asp)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容