从Bootstrap 3的列中删除填充
问题:
删除引导程序3中col-md- *的左侧和右侧的填充/边距。
HTML代码:
<div class="col-md-12"> <h2>OntoExplorer<span style="color:#b92429">.</span></h2> <div class="col-md-4"> <div class="widget"> <div class="widget-header"> <h3>Dimensions</h3> </div> <div class="widget-content" id=""> <div id='jqxWidget'> <div style="clear:both;margin-bottom:20px;" id="listBoxA"></div> <div style="clear:both;" id="listBoxB"></div> </div> </div> </div> </div> <div class="col-md-8"> <div class="widget"> <div class="widget-header"> <h3>Results</h3> </div> <div class="widget-content"> <div id="map_canvas" style="height: 362px;"></div> </div> </div> </div> </div>
期望的输出:
目前,这段代码在两列的左边和右边添加了填充/边距。 我想知道是什么,我错过了为了消除这方面的额外空间?
注意:
如果我删除“col-md-4”,那么两列都扩大到100%,但是我希望它们彼此相邻。
您通常会使用.row
来包装两列,而不是.col-md-12
– 这是包含另一列的列。 最后, .row
没有额外的边距和填充,而col-md-12
会带来空间,同时还会减less一个列会带来负向左右边距的空间。
<div class="container"> <div class="row"> <h2>OntoExplorer<span style="color:#b92429">.</span></h2> <div class="col-md-4 nopadding"> <div class="widget"> <div class="widget-header"> <h3>Dimensions</h3> </div> <div class="widget-content"> </div> </div> </div> <div class="col-md-8 nopadding"> <div class="widget"> <div class="widget-header"> <h3>Results</h3> </div> <div class="widget-content"> </div> </div> </div> </div> </div>
如果您确实想要删除填充/边距,请添加一个类以过滤每个子列的边距/填充。
.nopadding { padding: 0 !important; margin: 0 !important; }
我总是将这种风格添加到我的Bootstrap LESS / SASS:
.row-no-padding { [class*="col-"] { padding-left: 0 !important; padding-right: 0 !important; } }
然后在HTML中,你可以写:
<div class="row row-no-padding">
如果你只想定位子列,你可以使用子select器(感谢John Wu)。
.row-no-padding > [class*="col-"] { padding-left: 0 !important; padding-right: 0 !important; }
您也可能只想移除特定设备大小的填充(SASS示例):
/* Small devices (tablets, 768px and up) */ @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) { .row-sm-no-padding { [class*="col-"] { padding-left: 0 !important; padding-right: 0 !important; } } }
如果您希望向上支持小型设备,则可以删除媒体查询的最大宽度部分。
减less列上的填充不会使伎俩,因为你会扩大页面的宽度,使其与你的网页的其余部分,说navbar不平衡。 您需要同样减less行上的负余量。 采取@马丁'举例:
.row-no-padding { margin-left: 0; margin-right: 0; [class*="col-"] { padding-left: 0 !important; padding-right: 0 !important; } }
特别针对SASS mixin:
@mixin no-padding($side) { @if $side == 'all' { .no-padding { padding: 0 !important; } } @else { .no-padding-#{$side} { padding-#{$side}: 0 !important; } } } @include no-padding("left"); @include no-padding("right"); @include no-padding("top"); @include no-padding("bottom"); @include no-padding("all");
然后在HTML中,你可以使用
.no-padding-left .no-padding-right .no-padding-bottom .no-padding-top .no-padding - to remove padding from all sides
当然,你可以@只包括那些你需要的声明。
另一种解决scheme,只有从LESS源文件编译bootstrap时才可行,重新定义设置列填充的variables。
您将在variables.less
文件中find该variables:它被称为@grid-gutter-width
。
它的来源是这样描述的:
//** Padding between columns. Gets divided in half for the left and right. @grid-gutter-width: 30px;
将其设置为0,编译bootstrap.less
,并包含生成的bootstrap.css
。 你完成了。 如果您已经在使用像我这样的引导源,那么可以定义一个额外的规则。
只需在bootstrap中添加内build类的“no-padding”
[class*="col-"] padding: 0 margin: 0
上述解决scheme都不适合我。 在这个答案之后,我能够创造出适合我的东西。 在这里,我也使用媒体查询来限制只有小屏幕。
@media (max-width: @screen-sm) { [class*="col-"] { padding-left: 0; padding-right: 0; } .row { margin-left: 0; margin-right: 0; } .container-fluid { margin: 0; padding: 0; } }
<div class="col-md-12"> <h2>OntoExplorer<span style="color:#b92429">.</span></h2> <div class="col-md-4"> <div class="widget row"> <div class="widget-header"> <h3>Dimensions</h3> </div> <div class="widget-content" id=""> <div id='jqxWidget'> <div style="clear:both;margin-bottom:20px;" id="listBoxA"></div> <div style="clear:both;" id="listBoxB"></div> </div> </div> </div> </div> <div class="col-md-8"> <div class="widget row"> <div class="widget-header"> <h3>Results</h3> </div> <div class="widget-content"> <div id="map_canvas" style="height: 362px;"></div> </div> </div> </div>
你可以在col-md-4里的div里添加一行的行,而这个行的-15px的margin将平衡掉列上的阴影。 这里有关Bootstrap 3中的排水沟和行的很好的解释。
我想这只是使用起来更容易
margin:-30px;
覆盖由bootstrap设置的原始值。
我试过了
margin: 0px -30px 0px -30px;
它为我工作。
此后仅在Bootstrap4上可用
<div class="p-0 m-0"> </div>
注意:.p-0和.m-0已经添加了bootstrap.css
将你的列包装在.row中,并添加一个名为“no-gutter”的类
<div class="container"> <div class="row no-gutter"> <h2>OntoExplorer<span style="color:#b92429">.</span></h2> <div class="col-md-4"> <div class="widget"> <div class="widget-header"> <h3>Dimensions</h3> </div> <div class="widget-content"> </div> </div> </div> <div class="col-md-8"> <div class="widget"> <div class="widget-header"> <h3>Results</h3> </div> <div class="widget-content"> </div> </div> </div> </div>
然后将以下内容粘贴到您的CSS文件
.row.no-gutter { margin-left: 0; margin-right: 0; } .row.no-gutter [class*='col-']:not(:first-child), .row.no-gutter [class*='col-']:not(:last-child) { padding-right: 0; padding-left: 0; }
使用css参考删除/定制Bootstrap装订线: http : //arnique.net/web-design/58/a-quick-guide-to-changing-bootstraps-gutter-width/
/* remove */ .gutter-0.row { margin-right: -0px; margin-left: -0px; } .gutter-0 > [class^="col-"], .gutter-0 > [class^=" col-"] { padding-right: 0px; padding-left: 0px; } /* customize */ .gutter-6.row { margin-right: -3px; margin-left: -3px; } .gutter-6 > [class^="col-"], .gutter-6 > [class^=" col-"] { padding-right: 3px; padding-left: 3px; }
<link href="bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> <div class="row gutter-6"> <div class="col-sm-3 col-md-3"> <div class="thumbnail"> <img width="100%" src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/PjxzdmcgeG+PC9zdHlsZT48L2RlZnM+PGcgaWQ9ImhvbGRlcl8xNTkzNGVhODE3ZCI+PHJlY3Qgd2lkdGg9IjE3MSIgaGVpZ2h0PSIxODAiIGZpbGw9IiNFRUVFRUUiLz48Zz48dGV4dCB4PSI2MSIgeT0iOTQuNSI+MTcxeDE4MDwvdGV4dD48L2c+PC9nPjwvc3ZnPg==" alt=""> <div class="caption"> <h3>Thumbnail label</h3> <p>more</p> <p><a href="#" class="btn btn-primary" role="button">Button</a> <a href="#" class="btn btn-default" role="button">Button</a></p> </div> </div> </div> <div class="col-sm-3 col-md-3"> <div class="thumbnail"> <img width="100%" src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/PjxzdmcgeG+PC9zdHlsZT48L2RlZnM+PGcgaWQ9ImhvbGRlcl8xNTkzNGVhODE3ZCI+PHJlY3Qgd2lkdGg9IjE3MSIgaGVpZ2h0PSIxODAiIGZpbGw9IiNFRUVFRUUiLz48Zz48dGV4dCB4PSI2MSIgeT0iOTQuNSI+MTcxeDE4MDwvdGV4dD48L2c+PC9nPjwvc3ZnPg==" alt=""> <div class="caption"> <h3>Thumbnail label</h3> <p>more</p> <p><a href="#" class="btn btn-primary" role="button">Button</a> <a href="#" class="btn btn-default" role="button">Button</a></p> </div> </div> </div> <div class="col-sm-3 col-md-3"> <div class="thumbnail"> <img width="100%" src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/PjxzdmcgeG+PC9zdHlsZT48L2RlZnM+PGcgaWQ9ImhvbGRlcl8xNTkzNGVhODE3ZCI+PHJlY3Qgd2lkdGg9IjE3MSIgaGVpZ2h0PSIxODAiIGZpbGw9IiNFRUVFRUUiLz48Zz48dGV4dCB4PSI2MSIgeT0iOTQuNSI+MTcxeDE4MDwvdGV4dD48L2c+PC9nPjwvc3ZnPg==" alt=""> <div class="caption"> <h3>Thumbnail label</h3> <p>more</p> <p><a href="#" class="btn btn-primary" role="button">Button</a> <a href="#" class="btn btn-default" role="button">Button</a></p> </div> </div> </div> <div class="col-sm-3 col-md-3"> <div class="thumbnail"> <img width="100%" src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/PjxzdmcgeG+PC9zdHlsZT48L2RlZnM+PGcgaWQ9ImhvbGRlcl8xNTkzNGVhODE3ZCI+PHJlY3Qgd2lkdGg9IjE3MSIgaGVpZ2h0PSIxODAiIGZpbGw9IiNFRUVFRUUiLz48Zz48dGV4dCB4PSI2MSIgeT0iOTQuNSI+MTcxeDE4MDwvdGV4dD48L2c+PC9nPjwvc3ZnPg==" alt=""> <div class="caption"> <h3>Thumbnail label</h3> <p>more</p> <p><a href="#" class="btn btn-primary" role="button">Button</a> <a href="#" class="btn btn-default" role="button">Button</a></p> </div> </div> </div> </div>
您可以创build一个删除边距的新类,并可以将其应用于要删除额外边距的元素:
.margL0 { margin-left:0 !important }
!重要的 :它将帮助您删除默认边距或覆盖当前边距值
并适用于您想要从左侧删除边距的那个div
<style> .col-md-12{ padding-left:0px !important; padding-right:0px !important; } .col-md-8{ padding-left:0px !important; padding-right:0px !important; } .col-md-4{ padding-left:0px !important; padding-right:0px !important; } </style>
您可以使用引导来创build较less的混音,以pipe理列的边距和填充,
http://mohandere.work/less-mixins-for-margin-and-padding-with-bootstrap-3/
用法:
xs-padding-lr-15px//left right both xs-padding-l-15px xs-padding-r-15px
类似地,设置保证金/填充零可以使用,
xs-padding-lr-0px xs-padding-l-0px xs-padding-r-0px
build立在Vitaliy Silin的答案 。 不仅涵盖我们不需要填充的情况,而且覆盖标准尺寸填充的情况。
请参阅sassmeister.com上将此代码实时转换为CSS
@mixin padding($side, $size) { $padding-size : 0; @if $size == 'xs' { $padding-size : 5px; } @else if $size == 's' { $padding-size : 10px; } @else if $size == 'm' { $padding-size : 15px; } @else if $size == 'l' { $padding-size : 20px; } @if $side == 'all' { .padding--#{$size} { padding: $padding-size !important; } } @else { .padding-#{$side}--#{$size} { padding-#{$side}: $padding-size !important; } } } $sides-list: all top right bottom left; $sizes-list: none xs sml; @each $current-side in $sides-list { @each $current-size in $sizes-list { @include padding($current-side,$current-size); } }
然后输出:
.padding--none { padding: 0 !important; } .padding--xs { padding: 5px !important; } .padding--s { padding: 10px !important; } .padding--m { padding: 15px !important; } .padding--l { padding: 20px !important; } .padding-top--none { padding-top: 0 !important; } .padding-top--xs { padding-top: 5px !important; } .padding-top--s { padding-top: 10px !important; } .padding-top--m { padding-top: 15px !important; } .padding-top--l { padding-top: 20px !important; } .padding-right--none { padding-right: 0 !important; } .padding-right--xs { padding-right: 5px !important; } .padding-right--s { padding-right: 10px !important; } .padding-right--m { padding-right: 15px !important; } .padding-right--l { padding-right: 20px !important; } .padding-bottom--none { padding-bottom: 0 !important; } .padding-bottom--xs { padding-bottom: 5px !important; } .padding-bottom--s { padding-bottom: 10px !important; } .padding-bottom--m { padding-bottom: 15px !important; } .padding-bottom--l { padding-bottom: 20px !important; } .padding-left--none { padding-left: 0 !important; } .padding-left--xs { padding-left: 5px !important; } .padding-left--s { padding-left: 10px !important; } .padding-left--m { padding-left: 15px !important; } .padding-left--l { padding-left: 20px !important; }
有时你可能会失去你想要的列的填充。 他们最终坚持对方。 为了防止这种情况,您可以按如下方式更新课程:
<div class="col-md-3 NoPaddingForChildren"> <div class="col-md-6"> <label>Id</label> <input ng-model="ID" class="form-control"> </div> <div class="col-md-6"> <label>Value</label> <input ng-model="Val" class="form-control"> </div> </div>
和相应的类:
.NoPaddingForChildren > div:not(:first-child):not(:last-child) { padding-left: 0; padding-right: 0; } .NoPaddingForChildren > div:first-child { padding-left: 0; } .NoPaddingForChildren > div:last-child { padding-right: 0; }
如果使用SASS文件下载引导程序,您将能够编辑configuration文件,其中有一个列的边距设置,然后保存它,这样SASS计算列的新宽度
您可以自定义Bootstrap Grid系统并定义自定义响应式网格。
将@grid-gutter-width = 30px
的以下排水沟宽度的默认值更改为@grid-gutter-width = 0px
(宽度在列间填充,左右分为两半)