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 相关文章推荐
说说掌握JavaScript语言的思想前提想学习js的朋友可以看看
Apr 01 Javascript
jquery选择器的选择使用及性能介绍
Jan 16 Javascript
jquery实现按Enter键触发事件示例
Sep 10 Javascript
jquery中animate动画积累的解决方法
Oct 05 Javascript
JavaScript检测原始值、引用值、属性
Jun 20 Javascript
在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口的方法
Aug 05 Javascript
原生JS实现轮播效果+学前端的感受(防止走火入魔)
Aug 21 Javascript
Bootstrap popover 实现鼠标移入移除显示隐藏功能方法
Jan 24 Javascript
JS数组中对象去重操作示例
Jun 04 Javascript
vue中动态select的使用方法示例
Oct 28 Javascript
详解vue中$nextTick和$forceUpdate的用法
Dec 11 Javascript
openLayer4实现动态改变标注图标
Aug 17 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
PHP实现二叉树的深度优先与广度优先遍历方法
2015/09/28 PHP
php格式化json函数示例代码
2016/05/12 PHP
php实现在新浪云中使用imagick生成缩略图并上传的方法
2016/09/26 PHP
Laravel 中创建 Zip 压缩文件并提供下载的实现方法
2019/04/02 PHP
学习ExtJS 访问容器对象
2009/10/07 Javascript
jquery.validate使用攻略 第一部
2010/07/01 Javascript
事件模型在各浏览器中存在差异
2010/10/20 Javascript
使用jQuery中的when实现多个AJAX请求对应单个回调的例子分享
2014/04/23 Javascript
浏览器中url存储的JavaScript实现
2015/07/07 Javascript
Nodejs+Socket.io实现通讯实例代码
2017/02/13 NodeJs
js以及jquery实现手风琴效果
2020/04/17 Javascript
Vue中的Vux配置指南
2017/12/08 Javascript
ES6入门教程之Array.from()方法
2019/03/23 Javascript
详解JavaScript中的函数、对象
2019/04/01 Javascript
详解Vue-cli3.X使用px2rem遇到的问题
2019/08/09 Javascript
详解关闭令人抓狂的ESlint 语法检测配置方法
2019/10/28 Javascript
element-ui table组件如何使用render属性的实现
2019/11/04 Javascript
微信小程序实现日历小功能
2020/11/18 Javascript
[04:10]2018年度CS GO玩家最喜爱的主播-完美盛典
2018/12/16 DOTA
在Django框架中设置语言偏好的教程
2015/07/27 Python
实践Vim配置python开发环境
2018/07/02 Python
利用django-suit模板添加自定义的菜单、页面及设置访问权限
2018/07/13 Python
利用Python如何批量修改数据库执行Sql文件
2018/07/29 Python
python实现写数字文件名的递增保存文件方法
2018/10/25 Python
利用 Flask 动态展示 Pyecharts 图表数据方法小结
2019/09/04 Python
采购部主管岗位职责
2014/01/01 职场文书
弘扬雷锋精神活动演讲稿
2014/03/04 职场文书
护士上岗前培训自我鉴定
2014/04/20 职场文书
文明寝室申报材料
2014/05/12 职场文书
法语专业求职信
2014/07/20 职场文书
拾金不昧表扬信
2015/01/16 职场文书
创业计划书介绍
2019/04/24 职场文书
CSS3 制作的书本翻页特效
2021/04/13 HTML / CSS
linux下导入、导出mysql数据库命令的实现方法
2021/05/26 MySQL
如何使用分区处理MySQL的亿级数据优化
2021/06/18 MySQL
Apache Linkis 中间件架构及快速安装步骤
2022/03/16 Servers