码迷,mamicode.com
首页 > 其他好文 > 详细

tips 前端 bootstrap 嵌套行 嵌套列 溢出 宽度不正确 栅格化系统计算

时间:2015-05-12 13:32:14      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:

bootstrap 当嵌套列时 有时会出现很奇异的row 的width不对问题
出现的情况时

1 <div class="row" >  <!--row a-->
2     <div class="col-xs-12 col-lg-6 col-lg-offset-3">
3         <div class="row"> <!-- row b-->
4             <div class="col-xs-12">
5                 ...
6             </div>
7         </div>      <!--row b-->
8     </div>
9 </div>    <!-- row a -->

此时rowb的宽度计算会出现bug 在手机屏幕上将溢出
解决方案很简单 对row a设置样式overflow:hidden;(事先声明,这种解决方式有细微缺陷,但是基本不影响,而且简单实用)
此时对rowb 的设置width:100%; (在浏览器f12的盒子模型里可以看到width确实是对的(与父元素的width保持一致),但给它一个边框会发现视觉上真实的宽度是明显不够的(和父元素的width不等,非常诡异))
或者给rowb加一个父级元素container都是错误的做法,(此时手机屏幕上的不再溢出,在大屏幕上将会溢出)

为什么会有这个问题,可以去f12看row和col的盒子模型,因为bootstrap的col 默认有gutter(即col有左右的padding分别15px)
如果觉得这种默认不好,我们可以自己制定规则覆盖默认
定义样式如下

1 .row.no_gutter [class^="col-"],.row.no_gutter [class*="col-"]{
2     padding-right:0px;
3     padding-left:0px;
4 }

然后需要嵌套列时,只需要将此嵌套的行加一个样式类就ok了,like this:

1 <div class="row" >  <!--row a-->
2     <div class="col-xs-12 col-lg-6 col-lg-offset-3">
3         <div class="row no_gutter"> <!-- row b-->
4             <div class="col-xs-12">
5                 ...
6             </div>
7         </div>         < !--  row b is end -->
8     </div>
9 </div>  <!-- row a is end -->

或者也可以去改bootstrap源码,对于专业的前端工程师来说,
毫无疑问本地是有一套比如npm-bower-grunt的编译环境的,
此时 运行  bower install bootstrap 
然后在项目下 运行  npm install 


然后在其less文件夹下找variables.less文件 更改  @grid-gutter-width:30px; 的值即可(想再详细具体一点,精确到每个不同分辨率的设备的gutter请参照http://v3.bootcss.com/css/ (侧边栏less mixin和变量栏))


然后 运行 grunt dist 就能在dist文件夹下取编译后的版本了.

 

tips 前端 bootstrap 嵌套行 嵌套列 溢出 宽度不正确 栅格化系统计算

标签:

原文地址:http://www.cnblogs.com/isdom/p/webtips004.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!