Boostrap栅格系统与自己额外定义的媒体查询的冲突问题


Posted in Javascript onFebruary 19, 2017

html结构如下

<div class="row">
  <div class="col-sm-6 col-xs-12">
    <p class="text-left one">
      1111
    </p>
  </div>
  <div class="col-sm-6 col-xs-12">
    <p class="text-right two">
      2222
    </p>
  </div>
</div>

我想要实现的效果是在屏幕宽度大于768时,1111左对齐,2222右对齐,小于等于768时居中对齐。于是我又额外写了媒体查询

@media (max-width: 768px) {
  .container-fluid .row p{
    color: #fff;
    font-size: 16px;
    text-align: center;
    line-height: 30px;
  }
  .row .text-left{
    margin-top: 20px;
  }
}

最终展示类似下图

Boostrap栅格系统与自己额外定义的媒体查询的冲突问题

Boostrap栅格系统与自己额外定义的媒体查询的冲突问题

看起来一切正常,但是却在临界点768px时出现了问题,如图

Boostrap栅格系统与自己额外定义的媒体查询的冲突问题

打开控制台,会发现右边的两个图标的样式确实使用了text-align:center;,但是为什么展示出来呈现不一样的效果呢

Boostrap栅格系统与自己额外定义的媒体查询的冲突问题

原因在于父级定义的栅格系统,查看.text-right的父级div,会发现它所占的宽度为50%

Boostrap栅格系统与自己额外定义的媒体查询的冲突问题

因此在屏幕宽度为768px时,既有自己定义的样式,也有原来栅格系统的样式,所以导致混乱,根本原因在于没注意栅格系统的实质

/* 超小屏幕(手机,小于 768px) */
/* 没有任何媒体查询相关的代码,因为这在 Bootstrap 中是默认的(还记得 Bootstrap 是移动设备优先的吗?) */
/* 小屏幕(平板,大于等于 768px) */
@media (min-width: @screen-sm-min) { ... }
/* 中等屏幕(桌面显示器,大于等于 992px) */
@media (min-width: @screen-md-min) { ... }
/* 大屏幕(大桌面显示器,大于等于 1200px) */
@media (min-width: @screen-lg-min) { ... }

栅格系统是用min-width定义的,为大于等于,而我们额外定义的媒体查询用的是max-width,为小于等于,刚好有一个768px的重合,导致最终样式混乱。

解决办法:

去除交集,自己定义媒体查询时,定义max-width:767px

以上所述是小编给大家介绍的Boostrap栅格系统与自己额外定义的媒体查询的冲突问题,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
键盘KeyCode值列表汇总
Nov 26 Javascript
javascript作用域和闭包使用详解
Apr 25 Javascript
AngularJS基础知识
Dec 21 Javascript
Node.js模块封装及使用方法
Mar 06 Javascript
基于jQuery实现动态搜索显示功能
May 05 Javascript
jQuery实现div横向拖拽排序的简单实例
Jul 13 Javascript
自己封装的一个原生JS拖动方法(推荐)
Nov 22 Javascript
AngularJS使用拦截器实现的loading功能完整实例
May 17 Javascript
使用vue-cli导入Element UI组件的方法
May 16 Javascript
微信小程序:数据存储、传值、取值详解
May 07 Javascript
jQuery Datatables 动态列+跨列合并实现代码
Jan 30 jQuery
通过高德地图API获得某条道路上的所有坐标用于描绘道路的方法
Aug 24 Javascript
JavaScript中无法通过div.style.left获取值的解决方法
Feb 19 #Javascript
JS获取浮动(float)元素的style.left值为空的快速解决办法
Feb 19 #Javascript
Angular 输入框实现自定义验证功能
Feb 19 #Javascript
js实现九宫格的随机颜色跳转
Feb 19 #Javascript
原生JS实现垂直手风琴效果
Feb 19 #Javascript
js鼠标移动时禁止选中文字
Feb 19 #Javascript
canvas雪花效果核心代码分享
Feb 19 #Javascript
You might like
淘宝ip地址查询类分享(利用淘宝ip库)
2014/01/07 PHP
ThinkPHP处理Ajax返回的方法
2014/11/22 PHP
简单谈谈PHP中的Reload操作
2016/12/12 PHP
PHP7 安装event扩展的实现方法
2019/10/08 PHP
javascript 写类方式之五
2009/07/05 Javascript
JavaScript之appendChild、insertBefore和insertAfter使用说明
2010/12/30 Javascript
主页面中的两个iframe实现鼠标拖动改变其大小
2013/04/16 Javascript
jquery自定义函数的多种方法
2014/01/09 Javascript
用js读、写、删除Cookie代码续篇
2014/12/03 Javascript
使用OpenLayers3 添加地图鼠标右键菜单
2015/12/29 Javascript
让浏览器崩溃的12行JS代码(DoS攻击分析及防御)
2016/10/10 Javascript
react中的ajax封装实例详解
2017/10/17 Javascript
详解Angular5 服务端渲染实战
2018/01/04 Javascript
Angular 4.x+Ionic3踩坑之Ionic3.x pop反向传值详解
2018/03/13 Javascript
vue页面跳转实现页面缓存操作
2020/07/22 Javascript
Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例
2019/02/21 Python
Python3.5模块的定义、导入、优化操作图文详解
2019/04/27 Python
pyqt5 使用label控件实时显示时间的实例
2019/06/14 Python
Python中请不要再用re.compile了
2019/06/30 Python
numpy.array 操作使用简单总结
2019/11/08 Python
python数据库编程 ODBC方式实现通讯录
2020/03/27 Python
PyQt5实现登录页面
2020/05/30 Python
python中的垃圾回收(GC)机制
2020/09/21 Python
Python在线和离线安装第三方库的方法
2020/10/31 Python
Python try except finally资源回收的实现
2021/01/25 Python
python实现代码审查自动回复消息
2021/02/01 Python
【HTML5】Canvas绘制简单图片教程
2016/05/13 HTML / CSS
德国传统玻璃制造商:Cristalica
2018/04/23 全球购物
建房协议书
2014/04/11 职场文书
初中生期末评语大全
2014/04/24 职场文书
挂职锻炼个人总结
2015/03/05 职场文书
结婚堵门保证书
2015/05/08 职场文书
教育教学工作反思
2016/02/24 职场文书
一文帮你理解PReact10.5.13源码
2021/04/03 Javascript
python必学知识之文件操作(建议收藏)
2021/05/30 Python
深入解读Java三大集合之map list set的用法
2021/11/11 Java/Android