Bootstrap项目体验

0配置

reset.css

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

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

common.css

: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: var(--content-width);
  margin: 0 auto;
}

1实现导航部分

1.1让导航栏从左对齐转为居中

先在navbar内部设置一个盒子包起来所有内容,再设置fluid容器(特点是所有情况下width=100%),在设置最大宽度

部分代码:

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

此处必须使用var包含变量

2.在导航栏添加logo

在a标签内部添加img标签,只设置高度,让宽度根据高度自动调整

3.界面导航的文字

使用ul+li,li里面放span来完成剩余的一系列界面导航

span设置padding与cursor:pointer,还有字体

4.鼠标悬浮文字变色

其中默认第一个拥有变色+下划线的样式,即默认为active

易错:.text-link.active(写在同一个元素内的类)与.text-link(空格).active

前者兄弟,后者是子孙

.navbar .text-link.active,
.navbar .text-link:hover
{
  color: var(--theme-color);
}

.navbar .text-link.active span
{
  border-bottom: 2px solid var(--theme-color);
}
<li class="text-link active">
            <span>首页</span>
</li>

 

5.让内容各自左右分布

法一:mr-auto(margin-right:auto)

法二:justify-between

<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>

 6.取消某个特定元素的悬浮变色

.navbar .text-link.active,
.navbar .text-link:hover:not(.hot-line)
{
  color: var(--theme-color);
}

8..

.navbar .text-link.hot-line
{
  cursor: inherit;
}
        <p class="text-link hot-line">
          <span>咨询热线:4009910008</span>
        </p>

8.

  /* 修改下拉的背景 */
  #navbarNav{

    position: absolute;
    top: calc(100% + 16px);
    width: 100%;

    background-color: var(--bg-nav-color);
    color: #fff;
    margin: 0 -16px;
    z-index: 100;
  }

2.轮播图??????

$(function() {

  var currentImg = 'none' // none  big  small
  // 1.准备数据
  var banners = [
    {
      id:0,
      bigUrl: './img/banner0.png',
      smUrl: './img/banner0_sm.png'
    },
    {
      id:0,
      bigUrl: './img/banner1.png',
      smUrl: './img/banner1_sm.png'
    },
    {
      id:0,
      bigUrl: './img/banner2.png',
      smUrl: './img/banner2_sm.png'
    }
  ]

  // renderBanner(banners)

  $(window).on('resize',throttle( function() {
    // console.log( $(this).outerWidth() )  // border + paddig + content 
    var winWidth =  $(this).outerWidth()
    var isBigScreen = winWidth >= 768

    // if(currentImg === 'big' && isBigScreen) {
    //   return
    // }
    // if(currentImg === 'small' && !isBigScreen) {
    //   return
    // }

    if(currentImg === 'none'){
      // 掉这个函数来渲染界面
      renderBanner(banners, isBigScreen)
    } 
    
    if(currentImg === 'big' && !isBigScreen) {
      renderBanner(banners, isBigScreen)
    }

    if(currentImg === 'small' && isBigScreen) {
      // 掉这个函数来渲染界面
      renderBanner(banners, isBigScreen)
    }
    
  }))
  $(window).trigger('resize')



  function renderBanner(banners = [], isBigScreen) {

    currentImg = isBigScreen ? 'big' : 'small' 
    // 先把之前的定时器停掉
    $('.carousel').carousel('dispose')

    var banneHtmlString = ''
    // 2.将数据渲染到页面上
    banners.forEach(function(item, index) {
      var active = index === 0 ? 'active' :''
      var imgUrl = isBigScreen ? item.bigUrl: item.smUrl
      banneHtmlString +=`
         <div class="carousel-item ${active}" data-interval="3000">
          <img src="${imgUrl}" class="d-block w-100" alt="...">
        </div>
      `
    })
    $('.carousel-inner').empty().append(banneHtmlString)

    // 自动录播( 开始一个定时器 )
    $('.carousel').carousel('cycle')
  }


})

3.

        <div class="col-md-6 col-xl-3 item">

响应式布局根据,根据宽度依次从大到小为4/2/1列

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值