Bootstrap排版问题

Bootstrap排版问题


详见Bootstrap官方文档

一、栅格参数

通过下表可以详细查看 Bootstrap 的栅格系统是如何在多种屏幕设备上工作的。

超小屏幕 手机 (<768px)小屏幕 平板 (≥768px)中等屏幕 桌面显示器 (≥992px)大屏幕 大桌面显示器 (≥1200px)
栅格系统行为总是水平排列开始是堆叠在一起的,当大于这些阈值时将变为水平排列C
.container 最大宽度None (自动)750px970px1170px
类前缀.col-xs-.col-sm-.col-md-.col-lg-
列(column)数12
最大列(column)宽自动~62px~81px~97px
槽(gutter)宽30px (每列左右均有 15px)
可嵌套
偏移(Offsets)
列排序
二、如何实现排版
<div class="container-fluid">
  <div class="row">
    <div class="col-md-1">.col-md-1</div>
    <div class="col-md-1">.col-md-1</div>
    <div class="col-md-1">.col-md-1</div>
    <div class="col-md-1">.col-md-1</div>
    <div class="col-md-1">.col-md-1</div>
    <div class="col-md-1">.col-md-1</div>
    <div class="col-md-1">.col-md-1</div>
    <div class="col-md-1">.col-md-1</div>
    <div class="col-md-1">.col-md-1</div>
    <div class="col-md-1">.col-md-1</div>
    <div class="col-md-1">.col-md-1</div>
    <div class="col-md-1">.col-md-1</div>
  </div>
  
  <div class="row">
    <div class="col-md-8">.col-md-8</div>
    <div class="col-md-4">.col-md-4</div>
  </div>
  
  <div class="row">
    <div class="col-md-4">.col-md-4</div>
    <div class="col-md-4">.col-md-4</div>
    <div class="col-md-4">.col-md-4</div>
  </div>
  
  <div class="row">
    <div class="col-md-6">.col-md-6</div>
    <div class="col-md-6">.col-md-6</div>
  </div>
</div>

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

三、嵌套列
1、代码
<div class="row">
  <div class="col-sm-9">
    Level 1: .col-sm-9
    <div class="row">
      <div class="col-xs-8 col-sm-6">
        Level 2: .col-xs-8 .col-sm-6
      </div>
      <div class="col-xs-4 col-sm-6">
        Level 2: .col-xs-4 .col-sm-6
      </div>
    </div>
  </div>
</div>
2、效果

在这里插入图片描述

3、总结
  • 每一行(row)分为12个列(col)
  • container中有row,row中有col
  • 如果要实现嵌套列,需要在col中添加row后,才能添加col
四、实际中遇到的问题
1、排版“失效”
Ⅰ、代码
 <div id="app" class="container-fluid">    <!--container-->

   <div class="row clearfix">                    <!--row-->
     <div class="col-lg-12 col-md-12 col-sm-12">    <!--col-->
       <div class="row card">                 <!--row-->
         <ul class="nav nav-tabs">
           <li class="nav-item"><a class="nav-link active" data-toggle="tab" href="#tag" @click="change">标签</a></li>
           <li class="nav-item"><a class="nav-link" data-toggle="tab" href="#date" @click="change">日期</a></li>
           <li class="nav-item"><a class="nav-link" data-toggle="tab" href="#hot" @click="change">热门</a></li>
         </ul>
       </div>

       <div class="row tab-content">
         <!-- 标签 -->
         <div class="col-lg-12 col-md-12 col-sm-12 tab-pane active" id="tag">   <!--col-->
           <div class="row card">                <!--row-->
             <div class="col-lg-2 col-md-2 col-sm-2">           <!--col-->
             
               <strong style="color: #0d97ff">标签:</strong>
               <table class="table table-striped m-b-0">
                 <tbody>
                   <tr v-for="tag in tags">
                     <td><a style="color: #010101" @click="tagSelected(tag.id)">{{tag.tagName}}</a></td>
                     <td class="font-medium"></td>
                   </tr>
                 </tbody>
               </table>
             
             </div>

             <div class="col-lg-10 col-md-10 col-sm-10">       <!--col-->
      
               <a th:href="@{/stu/toStudyPage}">
                 <strong style="color: #0d97ff">问题:</strong>
               </a>
               <div class="card">
                 <div class="body">
                   <ul>
                     <li class="list-group-item" v-for="question in questions">

                       <div class="media">
                         <div class="pull-left">
                           <small style="color: #0d97ff">{{question.updateTime}}</small>
                           <div class="thumb hidden-sm-down m-r-20"><img
                                                                         th:src="@{/assets/images/xs/avatar1.jpg}" class="rounded-circle" alt="">
                           </div>
                         </div>

                         <div class="media-body">
                           <div class="media-heading">
                             <a href="#" class="m-r-10" @click="toAnsPage(question)">{{question.student.username}}</a>

                             <span v-for="questionAndTag in question.questionAndTags" class="badge bg-blue">
                               {{questionAndTag.tag.tagName}}
                             </span>

                             <a href="#" style="color:#3eacff;" class="pull-right" @click="toAnsPage(question)"><small class="float-right">点击回答</small></a>
                           </div>
                           <p class="msg">{{question.content}}</p>
                           <hr>
                         </div>
                       </div>
                     </li>
                   </ul>
                 </div>
               </div>
             </div>
           </div>
         </div>

     </div>
   </div>
  </div>
Ⅱ、效果

在这里插入图片描述

Ⅲ、疑问

​ 为什么col-lg-2理论上只占2列,为什么实际上占了一整行?

2、如何修改
方法1、找参照物

​ 黏贴官网代码,与自己要排版的效果进行比较

 <div class="row">
   <div class="col-lg-12 col-md-12 col-sm-12">
     Level 1: .col-lg-12 col-md-12 col-sm-12
     <div class="row">
       <div class="col-lg-2 col-md-2 col-sm-2">
         Level 2: .col-lg-2 col-md-2 col-sm-2
       </div>
       <div class="col-lg-10 col-md-10 col-sm-10">
         Level 2: .col-lg-10 col-md-10 col-sm-10
       </div>
     </div>
   </div>
</div>
方法2 在浏览器上修改样式

在这里插入图片描述

效果

​ 发现代码布局正常显示
在这里插入图片描述

Ⅲ、原因

​ 经比较,发现row和card同时使用,会影响row中嵌套列的效果

<div class="row card">                <!--row-->
  <div class="col-lg-2 col-md-2 col-sm-2">
  	 ...
  </div>
  <div class="col-lg-10 col-md-10 col-sm-10">
  	 ...
  </div>
</div>
Ⅳ、修改
<div class="row">
  <div class="col-lg-2 col-md-2 col-sm-2">
    <div class="card">
      ...
    </div>
  </div>
</div>

效果
在这里插入图片描述

3、总结
  • row,col最好单独放在div的class中不要和其他class对象混在一起绑定,布局会出错
  • container{ row { col {row {col…} } } },学会套娃,保证嵌套顺序不变即可,但不要求一定要紧紧挨着,中间有其他标签也可以。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值