【前端】Bootstrap案例:导航栏

bootstrap框架系列案例

案例网址
【前端】Bootstrap案例:导航栏https://blog.csdn.net/karshey/article/details/127372691
【前端】Bootstrap案例:轮播图https://blog.csdn.net/karshey/article/details/127388528
【前端】Bootstrap案例:网格系统、鼠标悬浮动画显示、响应式布局https://blog.csdn.net/karshey/article/details/127392879

目标

在这里插入图片描述

  • 鼠标放上去要变色
  • 右边的联系电话鼠标放上去不能有小手
  • 要有响应式

在这里插入图片描述

代码

0.公共css

reset
html, body, ul, li, ol, img, p, h1, h2, h3{
  margin: 0;
  padding: 0;
} 

ul, ol, li{
  list-style: none;
}

common
:root {
  --theme-color: #5354ff;
  --text-color: #333333;
  
  --title-color: #212224;
  --sub-title-color: #666666;

  --bg-color: #f0f0f0;
  --bg-target-color: #f6f7f9;
  --bg-nav-color: #090909;

  --border-color: #e2e2e2;

  --font-size: 14px;
  --font-size-title: 30px;

  --content-width: 1200px;
}

.wrapper{
  max-width: 1200px;
  margin: 0 auto;
}

1.引入bootstrap

中文文档

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <!--这个很重要!-->
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <!-- 引入bootstrap-css -->
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css"
        integrity="sha384-p1KAotb3W9ndluCsqePPYnjRm3c6abdnIjo0tQwYUv83VsbsYd43RuofnFAaDo0E" crossorigin="anonymous">
    <!-- 引入bootstrap-js -->
    <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js"
        integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj"
        crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.bundle.min.js"
        integrity="sha384-E5Sj1saJVFNzWWK3YIJB4LEDEEVEGaOdfmCprPDkfWUo+xkb6Ep52Q1TMEtgcFwi"
        crossorigin="anonymous"></script>
    <!-- 引入css -->
    <link rel="stylesheet" href="css/common.css">
    <link rel="stylesheet" href="css/reset.css">
    <title>导航demo</title>
</head>

<body>

</body>

</html>

接下来开始“裁缝”工作。

2.复制粘贴:得到结构

点击组件-导航条,找一个类似的。就是你了!
在这里插入图片描述

<nav class="navbar navbar-expand-lg navbar-light bg-light">
  <a class="navbar-brand" href="#">Navbar</a>
  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation">
    <span class="navbar-toggler-icon"></span>
  </button>
  <div class="collapse navbar-collapse" id="navbarNavAltMarkup">
    <div class="navbar-nav">
      <a class="nav-link active" href="#">Home <span class="sr-only">(current)</span></a>
      <a class="nav-link" href="#">Features</a>
      <a class="nav-link" href="#">Pricing</a>
      <a class="nav-link disabled">Disabled</a>
    </div>
  </div>
</nav>

3.debug1

为什么会变成这样?
在这里插入图片描述
答:学习Bootstrap时碰到错误Failed to find a valid digest in the ‘integrity‘ attribute for resource
省流:把报错的地方的integrity和crossorigin删掉。

显然,现在不报错了,这就是我们要的整体的结构。而且响应式bootstrap已经帮我们写好了。
在这里插入图片描述
注意,要把内容都放到一个容器里。

Navbars and their contents are fluid by default. Use optional containers to limit their horizontal width.

4.Navbar:logo

把图放进去,对比大小,写一下它的css。

html:

<!-- logo -->
<a class="navbar-brand" href="#">
    <img class="logo" src="img/logo.png" alt="">
</a>

css:

.navbar .navbar-brand .logo{
    width: 136px;
    height: 26px;
    padding-right: 25px;
}

5.导航栏

大概样子:
在这里插入图片描述
html:

<div class="collapse navbar-collapse" id="navbarNavAltMarkup">
    <ul class="navbar-nav">
        <li class="text-link">
            <span>首页</span>
        </li>
        <li class="text-link">
            <span>API</span>
        </li>
        <li class="text-link">
            <span>解决方案</span>
        </li>
        <li class="text-link">
            <span>案例</span>
        </li>
        <li class="text-link">
            <span>新闻</span>
        </li>
        <li class="text-link">
            <span>关于我们</span>
        </li>
    </ul>
</div>

css:

/*不要加.navbar-nav,因为右边的咨询热线也要用这个样式 */
.navbar .text-link{
    /* 没有这两个反而不会换行 */
    /* width: 78px;
    height: 37px; */
    padding: 8px 25px;
    font-size: var(--font-size);
}

加一些鼠标悬停效果:

/* active或者鼠标悬停 */
.navbar .navbar-nav .text-link.active,
.navbar .navbar-nav .text-link:hover{
    color:var(--theme-color);
    /* 鼠标放上去要有小手 */
    cursor: pointer;
}

/* 下划线 */
.navbar .navbar-nav .text-link.active span{
    border-bottom: 2px solid var(--theme-color);
}

效果:鼠标悬停会有颜色且有小手。
在这里插入图片描述

6.咨询热线

跟ul是兄弟节点。

html:

<p class="text-link hot-line">
   <span>咨询热线:4009910008</span>
</p>

7.button

实现一下红色方框部分:

在这里插入图片描述
html:

<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav">
   <!-- <span class="navbar-toggler-icon"></span> -->
    <img class="expand-icon" src="img/show-icon.png" alt="">
</button>

css:

/* 响应式布局:媒体查询 */
@media (max-width:992px) {
    .navbar-toggler {
        padding: 0px;
    }

    .navbar-toggler .expand-icon {
        width: 22.7px;
        height: 20px;
    }

    /* 下拉背景 */
    #navbarNav {
        background-color: var(--bg-nav-color);
        color: #fff;
        /* 拉开左右没有缝隙 */
        width: 100%;
        margin: 0 -16px;

        /* 下拉框和导航栏不能紧贴 */
        position: absolute;
        /*16是父级元素的margin*/
        top: calc(100% + 16px);

        /* 下拉框的层级比较高 */
        z-index: 100;
    }

    /* 点击时按钮会半透明 */
    .navbar-toggler .expand-icon:active {
        opacity: .6;
    }
}

效果:
在这里插入图片描述

总体代码

html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <!-- 引入bootstrap-css -->
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css">
    <!-- 引入bootstrap-js -->
    <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.bundle.min.js"></script>
    <!-- 引入css -->
    <link rel="stylesheet" href="css/common.css">
    <link rel="stylesheet" href="css/reset.css">
    <link rel="stylesheet" href="css/navbar.css">
    <title>导航demo</title>
</head>

<body>
    <nav class="navbar navbar-expand-lg">
        <div class="container-fluid">
            <!-- logo -->
            <a class="navbar-brand" href="#">
                <img class="logo" src="img/logo.png" alt="">
            </a>
            <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav">
                <!-- <span class="navbar-toggler-icon"></span> -->
                <img class="expand-icon" src="img/show-icon.png" alt="">
            </button>

            <div class="collapse navbar-collapse" id="navbarNav">
                <ul class="navbar-nav mr-auto">
                    <li class="text-link active">
                        <span>首页</span>
                    </li>
                    <li class="text-link">
                        <span>API</span>
                    </li>
                    <li class="text-link">
                        <span>解决方案</span>
                    </li>
                    <li class="text-link">
                        <span>案例</span>
                    </li>
                    <li class="text-link">
                        <span>新闻</span>
                    </li>
                    <li class="text-link">
                        <span>关于我们</span>
                    </li>
                </ul>

                <p class="text-link hot-line">
                    <span>咨询热线:4009910008</span>
                </p>
            </div>
        </div>
    </nav>
</body>

</html>

css

.navbar {
    margin: 16px 0;
}

.navbar .container-fluid {
    max-width: var(--content-width);
}

.navbar .navbar-brand .logo {
    width: 136px;
    height: 26px;
    padding-right: 25px;
}

.navbar .text-link {
    /* 没有这两个反而不会换行 */
    /* width: 78px;
    height: 37px; */
    padding: 8px 25px;
    font-size: var(--font-size);
}

/* active或者鼠标悬停 */
.navbar .navbar-nav .text-link.active,
.navbar .navbar-nav .text-link:hover {
    color: var(--theme-color);
    /* 鼠标放上去要有小手 */
    cursor: pointer;
}

/* 下划线 */
.navbar .navbar-nav .text-link.active span {
    border-bottom: 2px solid var(--theme-color);
}

/* 响应式布局:媒体查询 */
@media (max-width:992px) {
    .navbar-toggler {
        padding: 0px;
    }

    .navbar-toggler .expand-icon {
        width: 22.7px;
        height: 20px;
    }

    /* 下拉背景 */
    #navbarNav {
        background-color: var(--bg-nav-color);
        color: #fff;
        /* 拉开左右没有缝隙 */
        width: 100%;
        margin: 0 -16px;

        /* 下拉框和导航栏不能紧贴 */
        position: absolute;
        /*16是父级元素的margin*/
        top: calc(100% + 16px);

        /* 下拉框的层级比较高 */
        z-index: 100;
    }

    /* 点击时按钮会半透明 */
    .navbar-toggler .expand-icon:active {
        opacity: .6;
    }
}

参考

HTML属性crossorigin和integrity有什么用
学习Bootstrap时碰到错误Failed to find a valid digest in the ‘integrity‘ attribute for resource

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
对于很多网站来说,导航栏是网页设计中非常重要的一部分。Bootstrap是一款流行的前端开发框架,提供了丰富的组件和样式,包括了很多漂亮的导航栏设计。 首先,Bootstrap导航栏具有现代简洁的外观。导航栏通常位于网页的顶部,作为整个页面的首要内容,因此它的外观设计非常关键。Bootstrap提供了各种样式和颜色的导航栏,可以根据不同的网站风格进行选择。不论是扁平风格还是渐变颜色,都能满足不同网站的需求。 其次,Bootstrap导航栏具有响应式设计。随着移动设备的普及,越来越多的用户会通过手机或平板电脑浏览网页。Bootstrap导航栏可以自动适应不同的屏幕尺寸,确保在不同设备上都能够良好显示。这样,用户无论使用手机还是电脑,都可以方便地浏览导航栏的内容。 此外,Bootstrap导航栏还具有灵活的布局。导航栏可以根据需要包含不同的元素,如品牌logo、导航链接、下拉菜单等。这些元素可以通过Bootstrap提供的CSS类来快速构建和定制。同时,导航栏的位置和样式也可以进行自由的调整,以适应不同网站的布局和需求。 总结而言,Bootstrap提供了很多好看的导航栏设计,它们具有现代简洁、响应式和灵活布局等特点。不仅能美化网站的外观,还能提升用户的体验和网站的易用性。如果你想要一个好看的导航栏,不妨考虑使用Bootstrap来实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

karshey

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值