CSS8 小实践:导航栏与下拉菜单

垂直导航栏

点到哪一个哪一个会换颜色
在这里插入图片描述

分析:

本质上就是一个列表。列表的每个元素都是一个链接
对于每一个链接,当点击他的时候,他的背景颜色就会发生改变

第一步:创建垂直列表项,这里仅仅使用了html的列表和链接

在这里插入图片描述

<ul>
    <li><a href="#home">主页</a></li>
    <li><a href="#new">新闻</a></li>
    <li><a href="#contact">练习</a></li>
    <li><a href="#about">关于</a></li>
</ul>

第二步:修饰垂直列表项,删除列表的标志和消除边距

1.移除列表项前面的小标记。
2.消除浏览器默认的列表项的边距。
在这里插入图片描述

    <style>
        ul{
            list-style-type: none;
            margin: 0;
            padding: 0;
        }
    </style>

第三步:设置每个链接的背景和块大小,取消链接格式的下划线

       a{
            /*取消链接的下划线*/
            text-decoration: none;
            /*设置块大小*/
            display: block;
            width: 60px;
            /*设置块背景*/
            background-color: #7FFFD4;
        }

第四步:实现链接的点击时改变颜色的功能,如果被点击也会有特殊效果

通过hover,active实现

        li a:hover {
            background-color: #555;
            color: white;
        }
        li a:active
        {
            background-color: #4CAF50;
            color: red;
        }

在这里插入图片描述

第五步:把导航栏弄成可以扩展的导航栏。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        *{
            /*取消页面的初始设置*/
            border:0;
            margin: 0;
        }
        ul {
            list-style-type: none;
            margin: 0;
            padding: 0;
            /*#设置成为全局的高度*/
            position: fixed;
            background-color: #f1f1f1;
            height: 100%;
            overflow: auto;
            width: 15%;
            /*设置边框线*/
            border:1px solid #000000;
        }
        li{
            /*列表项设置边框线,下边框设置边框线*/
            border-bottom: 1px solid #000000;
        }
        li:last-child{
            /*最后一个列表项不设置边框*/
            border-bottom: none;
        }
        li a{
            /*取消链接的下划线*/
            text-decoration: none;
            /*设置块大小*/
            display: block;
            /*设置块背景*/
            background-color: #7FFFD4;
            font-size: 30px;
            font-weight: bold;
        }
        li a:hover {
            /*鼠标经过这个选项时改变颜色*/
            background-color: #555;
            color: white;
        }
        li a:active
        {
            /*鼠标点击时替换颜色*/
            background-color: #4CAF50;
            color: red;
        }
    </style>
</head>
<body>
<ul>
    <li><a href="#home">主页</a></li>
    <li><a href="#new">新闻</a></li>
    <li><a href="#contact">练习</a></li>
    <li><a href="#about">关于</a></li>
</ul>
</body>
</html>

水平导航栏

分析:

1.只要规定所有的列表项浮动起来,横向排列。
2.设置导航栏的高度,宽度铺满屏幕就行了。j
3.设置边框宽度。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        *{
            /*取消页面的初始设置*/
            border:0;
            margin: 0;
        }
        ul {
            list-style-type: none;
            margin: 0;
            padding: 0;
            /*#设置成为全局的高度*/
            position: fixed;
            background-color: #f1f1f1;
            height: 4%;
            overflow: auto;
            width: 100%;
            /*设置边框线*/
            border:1px solid #000000;
        }
        li{
            display: inline-block;
            height: 100%;
            /*列表项设置边框线,下边框设置边框线*/
            border-right: 1px solid #000000;
        }
        li:last-child{
            /*最后一个列表项不设置边框*/
            border-right: none;
        }
        li a{
            /*取消链接的下划线*/
            text-decoration: none;
            /*设置块大小*/
            height: 100%;
            /*设置块背景*/
            background-color: #7FFFD4;
            font-size: 30px;
            font-weight: bold;

        }
        li a:hover {
            /*鼠标经过这个选项时改变颜色*/
            background-color: #555;
            color: white;
        }
        li a:active
        {
            /*鼠标点击时替换颜色*/
            background-color: #4CAF50;
            color: red;
        }
    </style>
</head>
<body>
<ul>
    <li><a href="#home">主页</a></li>
    <li><a href="#new">新闻</a></li>
    <li><a href="#contact">练习</a></li>
    <li><a href="#about">关于</a></li>
</ul>
</body>
</html>

下拉菜单

简单菜单下拉的实现思路

1.html部分
span里的东西是显示的部分,选项1,选项2是经过后显示的部分

<div class="dropdown">
    <span>鼠标经过我这里</span>
    <div class="dropdown_content">
        <p>选项1</p>
        <p>选项2</p>
    </div>
</div>

2.css部分
(1)初始状态隐藏dropdown_content类的标签,让他脱离标准流,并且在上图层。
(2)鼠标经过时显示dropdown_content内容

    <style>
        *{
            /*初始化浏览器默认的边距设置*/
            margin: 0;
            border: 0;
            padding: 0;
        }
        .dropdown{
            position: relative;
            display: inline-block;
        }
        .dropdown_content{
            /*初始状态下看不到展开的内容*/
            display: none;
            /*脱离标准流,显示的时候不会影响标准流,只会在标准流的上方*/
            position: absolute;
            z-index: 1;
            /*设置背景和阴影*/
            background-color: #7FFFD4;
            box-shadow: 0px 1px 0px 1px #a1a1a1;
            padding: 12px 16px;
        }
        .dropdown:hover .dropdown_content{
            /*鼠标经过的时候display属性改变*/
            display: block;
        }
    </style>

3.如果想要更好看的可以参照菜鸟教程,可以把所有的都换成按钮或者链接,并且设置背景和阴影等等。
http://www.runoob.com/try/try.php?filename=trycss_dropdown_button

综合

1.导航栏+下拉菜单

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        *{
            /*初始化浏览器默认的边距设置*/
            margin: 0;
            border: 0;
            padding: 0;
        }
        ul {
            list-style-type: none;
            float: left;
            /*#设置成为全局的高度*/
            /*position: fixed;*/
            /*注意此处必须把fixed取消*/
            /*因为fixed会脱离标准流,正文内容会有一部分在导航栏下面,并且导航栏高度需要手动指定*/
            /*因此默认就可以了*/
            overflow: auto;
            width: 100%;
            background-color: #a1a1a1;

        }
        li{
            float: left;
        }
        li .dropdown a{
            /*取消链接的下划线*/
            text-decoration: none;
            /*设置块大小*/
            height: 100%;
            /*设置块背景*/
            background-color: #7FFFD4;
            font-size: 30px;
            font-weight: bold;
            /*设置边框线*/
            border: 1px solid #000000;

        }
        li .dropdown a:hover {
            /*鼠标经过这个选项时改变颜色*/
            background-color: #555;
            color: white;
        }
        li .dropdown a:active
        {
            /*鼠标点击时替换颜色*/
            background-color: #4CAF50;
            color: red;
        }


        /*每个下拉按钮的设置*/
        .dropdown{
            display: inline-block;
        }
        .dropdown_content{
            /*初始状态下看不到展开的内容*/
            display: none;
            /*脱离标准流,显示的时候不会影响标准流,只会在标准流的上方*/
            position: absolute;
            z-index: 1;
            /*设置背景和阴影*/
            background-color: #7FFFD4;
            box-shadow: 0px 1px 0px 1px #a1a1a1;
        }
        .dropdown_content a {
            color: black;
            padding: 12px 16px;
            text-decoration: none;
            display: block;
        }
        .dropdown:hover .dropdown_content{
            /*鼠标经过的时候display属性改变*/
            display: block;
        }
    </style>
</head>
<body>
<ul>
    <li>
        <div class="dropdown">
            <a>主页</a>
            <div class="dropdown_content">
                <a>主页选项1</a>
                <a>主页选项2</a>
            </div>
        </div>
    </li>
    <li>
        <div class="dropdown">
            <a>新闻</a>
            <div class="dropdown_content">
                <a>新闻选项1</a>
                <a>新闻选项2</a>
            </div>
        </div>
    </li>
    <li>
        <div class="dropdown">
            <a>练习</a>
            <div class="dropdown_content">
                <a>练习选项1</a>
                <a>练习选项2</a>
            </div>
        </div>
    </li>
    <li>
        <div class="dropdown">
            <a>关于</a>
            <div class="dropdown_content">
                <a>关于选项1</a>
                <a>关于选项2</a>
            </div>
        </div>
    </li>
</ul>
<p>neirong</p>
<p>neirong</p>
<p>neirong</p>
<p>neirong</p>
</body>
</html>

猜你喜欢

转载自blog.csdn.net/weixin_44055272/article/details/88726452
今日推荐