• CSS学习笔记--导航栏


    导航栏=链接列表

    导航条基本上是一个链接列表,所以使用 <ul> 和 <li>元素非常有意义

    <ul>
      <li><a href="#home">主页</a></li>
      <li><a href="#news">新闻</a></li>
      <li><a href="#contact">联系</a></li>
      <li><a href="#about">关于</a></li>
    </ul>

    删除边距和填充:

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

    例子解析:

    • list-style-type:none - 移除列表前小标志。一个导航栏并不需要列表标记
    • 移除浏览器的默认设置将边距和填充设置为0

    垂直导航栏

    a
    {
        display:block;
        width:60px;
    }

    示例说明:

    • display:block - 显示块元素的链接,让整体变为可点击链接区域(不只是文本),它允许我们指定宽度
    • 60px - 块元素默认情况下是最大宽度。我们要指定一个60像素的宽度

    垂直导航条实例

    ul {
        list-style-type: none;
        margin: 0;
        padding: 0;
        width: 200px;
        background-color: #f1f1f1;
    }
     
    li a {
        display: block;
        color: #000;
        padding: 8px 16px;
        text-decoration: none;
    }
     
    /* 鼠标移动到选项上修改背景颜色 */
    li a:hover {
        background-color: #555;
        color: white;
    }

    激活/当前导航条实例

    .active {
        background-color: #4CAF50;
        color: white;
    }

    创建链接并添加边框

    ul {
        border: 1px solid #555;
    }
     
    li {
        text-align: center;
        border-bottom: 1px solid #555;
    }
     
    li:last-child {
        border-bottom: none;
    }

    全屏高度的固定导航条

    创建一个左边是全屏高度的固定导航条,右边是可滚动的内容。

    ul {
        list-style-type: none;
        margin: 0;
        padding: 0;
        width: 25%;
        background-color: #f1f1f1;
        height: 100%; /* 全屏高度 */
        position: fixed; 
        overflow: auto; /* 如果导航栏选项多,允许滚动 */
    }

    注意: 该实例可以在移动设备上使用。

    水平导航栏

    有两种方法创建横向导航栏。使用内联(inline)浮动(float)的列表项。

    这两种方法都很好,但如果你想链接到具有相同的大小,你必须使用浮动的方法。

    内联列表项

    li
    {
        display:inline;
    }

    浮动列表项

    对于所有的链接宽度相等,浮动 <li>元素,并指定为 <a>元素的宽度:

    li
    {
        float:left;
    }
    a
    {
        display:block;
        width:60px;
    }

    实例解析:

    • float:left - 使用浮动块元素的幻灯片彼此相邻
    • display:block - 显示块元素的链接,让整体变为可点击链接区域(不只是文本),它允许我们指定宽度
    • 60px - 块元素默认情况下是最大宽度。我们要指定一个60像素的宽度
    ul
    {
        list-style-type:none;
        margin:0;
        padding:0;
        overflow:hidden;
    }
    li
    {
        float:left;
    }
    a:link,a:visited
    {
        display:block;
        width:120px;
        font-weight:bold;
        color:#FFFFFF;
        background-color:#98bf21;
        text-align:center;
        padding:4px;
        text-decoration:none;
        text-transform:uppercase;
    }
    a:hover,a:active
    {
        background-color:#7A991A;
    }

    水平导航条实例

    创建一个水平导航条,在鼠标移动到选项后修改背景颜色。

    ul {
        list-style-type: none;
        margin: 0;
        padding: 0;
        overflow: hidden;
        background-color: #333;
    }
     
    li {
        float: left;
    }
     
    li a {
        display: block;
        color: white;
        text-align: center;
        padding: 14px 16px;
        text-decoration: none;
    }
     
    /*鼠标移动到选项上修改背景颜色 */
    li a:hover {
        background-color: #111;
    }

    激活/当前导航条实例

    在点击了选项后,我们可以添加 "active" 类来标准哪个选项被选中:

    .active {
        background-color: #4CAF50;
    }

    链接右对齐

    将导航条最右边的选项设置右对齐 (float:right;):

    <ul>
      <li><a href="#home">主页</a></li>
      <li><a href="#news">新闻</a></li>
      <li><a href="#contact">联系</a></li>
      <li style="float:right"><a class="active" href="#about">关于</a></li>
    </ul>

    添加分割线

    <li> 通过 border-right 样式来添加分割线:

    /* 除了最后一个选项(last-child) 其他的都添加分割线 */
    li {
        border-right: 1px solid #bbb;
    }
     
    li:last-child {
        border-right: none;
    }

    固定导航条

    可以设置页面的导航条固定在头部或者底部:

    固定在头部:

    ul {
        position: fixed;
        top: 0;
        width: 100%;
    }

    固定在底部:

    ul {
        position: fixed;
        bottom: 0;
        width: 100%;
    }

    注意: 该实例可以在移动设备上使用。

    灰色水平导航条

    固定在底部

    ul {
        border: 1px solid #e7e7e7;
        background-color: #f3f3f3;
    }
     
    li a {
        color: #666;
    }

    更多实例

    响应式顶部导航:如何使用 CSS3 媒体查询来创建一个响应式导航。

    <!DOCTYPE html>
    <html>
    <head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    </head>
    <body>
    
    <ul class="sidenav">
      <li><a class="active" href="#home">主页</a></li>
      <li><a href="#news">新闻</a></li>
      <li><a href="#contact">联系</a></li>
      <li><a href="#about">关于</a></li>
    </ul>
    
    <div class="content">
      <h2>响应式边栏导航实例</h2>
      <p>该实例在屏幕宽度小于 900px 时导航栏为顶部水平导航栏,如果大于 900px 导航栏会在左边,且是固定的。</p>
      <p>如果屏幕宽度小于 400px 会变为垂直导航栏。</p>
      <h3>重置浏览器窗口大小,查看效果。</h3>
    </div>
    
    </body>
    </html>
    body {margin: 0;}
    
    ul.sidenav {
        list-style-type: none;
        margin: 0;
        padding: 0;
        width: 25%;
        background-color: #f1f1f1;
        position: fixed;
        height: 100%;
        overflow: auto;
    }
    
    ul.sidenav li a {
        display: block;
        color: #000;
        padding: 8px 16px;
        text-decoration: none;
    }
     
    ul.sidenav li a.active {
        background-color: #4CAF50;
        color: white;
    }
    
    ul.sidenav li a:hover:not(.active) {
        background-color: #555;
        color: white;
    }
    
    div.content {
        margin-left: 25%;
        padding: 1px 16px;
        height: 1000px;
    }
    
    @media screen and (max- 900px) {
        ul.sidenav {
            width: 100%;
            height: auto;
            position: relative;
        }
        ul.sidenav li a {
            float: left;
            padding: 15px;
        }
        div.content {margin-left: 0;}
    }
    
    @media screen and (max- 400px) {
        ul.sidenav li a {
            text-align: center;
            float: none;
        }
    }

    响应式边栏导航:如何使用 CSS3 媒体查询来创建一个边栏导航。

    <!DOCTYPE html>
    <html>
    <head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    </head>
    <body>
    
    <ul class="topnav">
      <li><a class="active" href="#home">主页</a></li>
      <li><a href="#news">新闻</a></li>
      <li><a href="#contact">联系</a></li>
      <li class="right"><a href="#about">关于</a></li>
    </ul>
    
    <div style="padding:0 16px;">
      <h2>响应式导航栏实例</h2>
      <p>在屏幕宽度小于 600px 会重置导航栏。</p>
      <h4>重置浏览器窗口大小,查看效果。</h4>
    </div>
    
    </body>
    </html>
    body {margin: 0;}
    
    ul.topnav {
        list-style-type: none;
        margin: 0;
        padding: 0;
        overflow: hidden;
        background-color: #333;
    }
    
    ul.topnav li {float: left;}
    
    ul.topnav li a {
        display: block;
        color: white;
        text-align: center;
        padding: 14px 16px;
        text-decoration: none;
    }
    
    ul.topnav li a:hover:not(.active) {background-color: #111;}
    
    ul.topnav li a.active {background-color: #4CAF50;}
    
    ul.topnav li.right {float: right;}
    
    @media screen and (max- 600px){
        ul.topnav li.right, 
        ul.topnav li {float: none;}
    }

    导航下拉菜单:在导航条内部设置下拉菜单

    <!DOCTYPE html>
    <html>
    <head>
    <title>下拉菜单实例|菜鸟教程(runoob.com)</title>
    <meta charset="utf-8">
    <style>
      ul{
        list-style-type:none;
        margin:0;
        padding:0;
        overflow:hidden;
        background-color:#333;
      }
      
      li{
        float:left;
      }
      
      li a, .dropbtn
      {
        display:inline-block;
        color:white;
        text-align:center;
        padding:14px 16px;
        text-decoration:none;
      }
      
      li a:hover, .dropdown:hover, .dropbtn
      {
        background-color:#111;
      }
      
      .dropdown
      {
        display:inline-block;
      }
      
      .dropdown-content
      {
        display:none;
        position:absolute;
        background-color:#f9f9f9;
        min-width:160px;
        box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);
      }
      
      .dropdown-content a
      {
        color:black;
        padding:12px 16px;
        text-decoration:none;
        display:block;
      }
      
      .dropdown-content a:hover {background-color: #f1f1f1}
      
      .dropdown:hover .dropdown-content
      {
        display:block;
      }
      
      </style>
    </head>
    <body>
    
    <ul>
      <li><a class="active" href="#home">主页</a></li>
      <li><a href="#news">新闻</a></li>
      <div class="dropdown">
        <a href="#" class="dropbtn">下拉菜单</a>
        <div class="dropdown-content">
          <a href="#">链接 1</a>
          <a href="#">链接 2</a>
          <a href="#">链接 3</a>
        </div>
      </div>
    </ul>
    
    <h3>导航栏上的下拉菜单</h3>
    <p>鼠标移动到 "下拉菜单" 链接先显示下拉菜单。</p>
    
    </body>
    </html>
  • 相关阅读:
    jstl表达式判断字符or字符串相等的写法
    enctype="multipart/form-data导致request获取不到数据
    Mac下解决mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
    单源文件目录makefile
    默认生成的特殊函数
    为什么说switch比if快
    C++基本内置类型
    补码的原理及其应用
    CSS--浮动与定位
    CSS--字体
  • 原文地址:https://www.cnblogs.com/lyan/p/10020213.html
Copyright © 2020-2023  润新知