记一个bootstrap定制container导致页面X轴出现横向滚动条的坑
壹 ❀ 引
在bootstrap定制时,因为UI给的图纸的页面主体部分宽度为1200px,所以我将container容器宽度从默认的1170px改成了1200px,随后在页面缩小的调试过程中发现了页面横轴出现了滚动条,这我就差异了,页面除了container是1200px以外,头部尾部的都是宽度100%,还能有哪个地方超出,简单调试结合bootstrap特性发现了问题所在,这里做个记录。

贰 ❀ 问题
在调试过程中,看了下container容器的宽度,是1200px没错。

但是在查看头部时,发现了一个有趣的问题,头部的宽度是100%,此时调试宽度也确实显示的是1200px,但头部给我显示的内容宽度却只有1184px,怎么凭空少了十几像素。

结果才想起来,因为页面内容比较多,Y轴有滚动条,所以屏幕的1200px被滚动条占去了一部分,实际上并没有这么多。
而bootstrap使用的媒体查询,原本的临界点是屏幕宽度在1200px之上时,container宽度为1170px,特意留了30px当做缓冲。
恰好我在定制时修改了container的宽度,导致页面缩小快到1200px时,container容器一直是固定的1200px,页面因为滚动条的缘故实际不够1200px,这才导致X轴出现了滚动条。
所以说bootstrap在做媒体查询时,不让controller宽度与媒体查询临界点宽度相同还是有一定原因的...
那么怎么解决呢?第一种可以修改媒体查询临界点宽度,这个需要定制解决,其次还可以直接通过overflow处理下就好了。
叁 ❀ 解决
html {
overflow-y: scroll;
}
body {
width: 100%;
overflow: hidden;
}
最近在使用bootstrap做项目,也是踩了不少坑,有问题再记录,就先写到这里了。
2019.8.22 修改:
上述解决方案代码中,让body overflow为hidden,意思是XY轴超出都隐藏,但如果Y轴内容多也就看不到了,所以提前给html的Y轴设置了scroll来保证Y轴内容过多时,仍然可以正常阅读。
但我发现这样的设置产生了一个问题,即便Y轴内容不足以产生滚动条时页面右侧都会默认添加一个滚动条的灰色区域,浪费了部分空间,所以不推荐这么设置:

因此还是推荐直接给body添加 overflow-x:hidden 属性。
记一个bootstrap定制container导致页面X轴出现横向滚动条的坑的更多相关文章
- $#65279导致页面body会出现一个空白行
模板文件生成html文件之后会在body开头处加入一个可见的控制符,导致页面头部会出现一个空白行.原因是页面的编码是UTF-8 + BOM. 直接notopad++ 保存为无BO ...
- 记录一个关于 Document.on绑定事件后,导致页面卡顿的情况
假设当前页面的js文件中有如下函数: function A(){ function B(); } function B(){ $(document).on("click",&quo ...
- 使用 elementUI 的表单进行查询,表单中只有一个文本框时,回车会自动触发表单的提交事件,导致页面的刷新。
使用elementUI的el-form组件进行查询时,当输入框仅有一项时,回车自动提交表单,浏览器会刷新页面: 原因:由于当表单只有一个文本框时,按下回车将会触发表单的提交事件, 从而导致页面刷新. ...
- 利用Bootstrap框架制作查询页面的界面
UI设计实战篇——利用Bootstrap框架制作查询页面的界面 Bootstrap框架是一个前端UI设计的框架,它提供了统一的UI界面,简化了设计界面UI的过程(缺点是定制了界面,调整的余地不是太 ...
- 解决display none到display block 渲染时间过长的问题,以及bootstrap模态框导致其他框中input不能获得焦点问题的解决
在做定制页面的时候,遇到这么一个问题,因为弹出框用的是bootstrap的自带的弹出框,控制显示和隐藏也是用自带的属性控制 控制显示,在触发的地方 例如botton上面加上 data-toggle=& ...
- 手摸手教你bootstrap定制
老实说我一直不太喜欢使用bootstrap,bootstrap样式组件虽然丰富但实际开发使用到的不多:栅格系统虽然好用,满屏div也是看的头疼:所以当经理说要用bootstrap开发新项目的时候,我内 ...
- 记录一个bootstrap惨痛的错误
记录一个bootstrap的错误,这个错误因为我删除了一个class就导致了页面上显示的错误,这是一个惨痛的教训,特此记录,提醒自己在做前端的修改时,一定要慎之又慎.如果真的要做改动,改完之后也要测一 ...
- Bootstrap定制开发
Bootstrap作为目前很受欢迎的前端框架,越来越多的网站开始使用基于Bootstrap框架进行开发. 1.定制开发方法 (1)Bootstrap定制开发可以使用LESS和Grunt实现定制化 (2 ...
- ztree在onCheck()方法中防止因触发联动关系导致页面多次渲染而卡死的问题
这几天在项目中遇到了要使用树形选择框, 而且要求比较复杂,具体叙述如下: 首先是有个选择框,左边选择是适用的商品,右边显示已经选择的商品.也就是说,左边每次勾选操作,都要触发一个事件去刷新右边的页面, ...
随机推荐
- git命令行的颜色配置
Git颜色branch,diff,interactive,status配置,git终端配置颜色,git命令行高亮 Git默认的输出是单一颜色的,感觉很不容易阅读,Git支持用多种颜色来显示其输出的信息 ...
- Mysql安装、配置、优化
MYSQL定义 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最 ...
- C语言基本数据类型的转换
变量的数据类型是可以转换的.转换的方法有两种,一种是自动转换,一种是强制转换.自动转换发生在不同数据类型的量混合运算时,由编译系统自动完成.自动转换遵循以下规则:1) 若参与运算量的类型不同,则先转换 ...
- 【cf961G】G. Partitions(组合意义+第二类斯特林数)
传送门 题意: 给出\(n\)个元素,每个元素有价值\(w_i\).现在要对这\(n\)个元素进行划分,共划分为\(k\)组.每一组的价值为\(|S|\sum_{i=0}^{|S|}w_i\). 最后 ...
- 划分为k个相等的子集
给定一个整数数组 nums 和一个正整数 k,找出是否有可能把这个数组分成 k 个非空子集,其总和都相等. 示例 1: 输入: nums = [4, 3, 2, 3, 5, 2, 1], k = 4 ...
- ubuntu 查看端口被占用并删除端口
做网络的同学,估计会经常用到这个功能,这里就做一个记录吧. 首先查看特定端口是占用了: sudo netstat -nplt 其次要删除特定端口并查看: kill -9 pid_num sudo ne ...
- javascript ES6 新特性之 解构
解构的作用是可以快速取得数组或对象当中的元素或属性,而无需使用arr[x]或者obj[key]等传统方式进行赋值 var arr = [1, 2, 3]; //传统方式 var a = arr[0], ...
- spring = servlet + 依赖管理 + 业务逻辑
spring = servlet + 依赖管理 + 业务逻辑
- Selenium(十六):unittest单元测试框架(二) 初识unittest(续)
1. 认识unittest(续) 关于unittest单元测试框架,还有一些问题值得进一步探讨.你可能在前一章的学习过程中产生了一些疑问,也许你会在本节中找到答案. 1.1 用例执行的顺序 用例的执行 ...
- 理解并运用TP5.1-Facade
1.内容介绍 深入解析tp5.1与laravel 中Facade底层原理实现 1. 什么是Facade 2. 为什么需要有什么好处 3. Facade实现原理 4. 功能实现. 5. 容器注入 2. ...