CSS - 完全删除列之间的间距?

CSS - completely remove spacing between columns?

我有这个HTML:

<div class="container">
    <div class="box center-block">
        <div class="row">
            <div class="col-md-4 col-xs-4">
                <div class="thumbnail">A</div>
            </div>
            <div class="col-md-4 col-xs-4">
                <div class="thumbnail">A</div>
            </div>
            <div class="col-md-4 col-xs-4">
                <div class="thumbnail">A</div>
            </div>
        </div>
        <div class="row">
            <div class="col-md-4 col-xs-4">
                <div class="thumbnail">A</div>
            </div>
            <div class="col-md-4 col-xs-4">
                <div class="thumbnail">A</div>
            </div>
            <div class="col-md-4 col-xs-4">
                <div class="thumbnail">A</div>
            </div>
        </div>
        <div class="row">
            <div class="col-md-4 col-xs-4">
                <div class="thumbnail">A</div>
            </div>
            <div class="col-md-4 col-xs-4">
                <div class="thumbnail">A</div>
            </div>
            <div class="col-md-4 col-xs-4">
                <div class="thumbnail">A</div>
            </div>
        </div>
    </div>
</div>

和CSS:

.box {
    width: 300px;
    padding-top: 100px;
}
.row > div > div {
    width: 100px;
    height: 100px;
    margin: 0px;
}

我也在使用 bootsrap(版本 3)。

我能够删除行之间的边距,但无法删除列之间的边距。有没有办法以某种方式强制它? 我需要所有 "squares" 彼此相邻且没有任何边距(行和列之间)。

您可以在此处查看它的外观:https://jsfiddle.net/a91zujkj/

这是因为 .col-*-4100px 宽,这是您为 .thumbnail 元素定义的宽度。

您可以只删除 .col-* 类 并改用 .pull-left

.box {
    width: 300px;
    padding-top: 100px;
}
.row > div > div {
    width: 100px;
    height: 100px;
    margin: 0;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<div class="container">
    <div class="box center-block">
        <div class="row">
            <div class="pull-left">
                <div class="thumbnail">A</div>
            </div>
            <div class="pull-left">
                <div class="thumbnail">A</div>
            </div>
            <div class="pull-left">
                <div class="thumbnail">A</div>
            </div>
        </div>
        <div class="row">
            <div class="pull-left">
                <div class="thumbnail">A</div>
            </div>
            <div class="pull-left">
                <div class="thumbnail">A</div>
            </div>
            <div class="pull-left">
                <div class="thumbnail">A</div>
            </div>
        </div>
        <div class="row">
            <div class="pull-left">
                <div class="thumbnail">A</div>
            </div>
            <div class="pull-left">
                <div class="thumbnail">A</div>
            </div>
            <div class="pull-left">
                <div class="thumbnail">A</div>
            </div>
        </div>
    </div>
</div>

行有它自己的样式,并为元素添加边距,您可以通过添加来删除它:

.box >.row{
  margin:0;
}

如果您真的想使用 col- class,请确保将 .thumbnail 元素 width 设置为 100% 并使用 no-padding class 在 col- 个元素上。

这是一个例子:

@import url('https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css');

.box {
  width: 300px;
  padding-top: 100px;
}
.no-padding {
  padding-left: 0;
  padding-right: 0;
}
.thumbnail {
  width: 100%;
  height: 100px;
  margin: 0;
}
<div class="container">
    <div class="box center-block">
        <div class="row">
            <div class="col-md-4 col-xs-4 no-padding">
                <div class="thumbnail">A</div>
            </div>
            <div class="col-md-4 col-xs-4 no-padding">
                <div class="thumbnail">A</div>
            </div>
            <div class="col-md-4 col-xs-4 no-padding">
                <div class="thumbnail">A</div>
            </div>
        </div>
        <div class="row">
            <div class="col-md-4 col-xs-4 no-padding">
                <div class="thumbnail">A</div>
            </div>
            <div class="col-md-4 col-xs-4 no-padding">
                <div class="thumbnail">A</div>
            </div>
            <div class="col-md-4 col-xs-4 no-padding">
                <div class="thumbnail">A</div>
            </div>
        </div>
        <div class="row">
            <div class="col-md-4 col-xs-4 no-padding">
                <div class="thumbnail">A</div>
            </div>
            <div class="col-md-4 col-xs-4 no-padding">
                <div class="thumbnail">A</div>
            </div>
            <div class="col-md-4 col-xs-4 no-padding">
                <div class="thumbnail">A</div>
            </div>
        </div>
    </div>
</div>

您实际上根本不需要使用 col- classes,也不需要浮点数。另一种方法是使用 display: inline-block.

这是它的样子:

@import url('https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css');
.wrapper {
  width: 300px;
  padding-top: 100px;
  margin: 0 auto;
  font-size: 0;
}

.item {
  border: 1px solid #eee;
  width: 100px;
  height: 100px;
  display: inline-block;
  font-size: initial;
}
<div class="wrapper">
  <div class="item">A</div>
  <div class="item">A</div>
  <div class="item">A</div>
  <div class="item">A</div>
  <div class="item">A</div>
  <div class="item">A</div>
  <div class="item">A</div>
  <div class="item">A</div>
  <div class="item">A</div>
</div>

如果您真的很勇敢,也可以使用 CSS 网格布局。 ;)

CSS Grid Layout

CSS Grid layout excels at dividing a page into major regions, or defining the relationship in terms of size, position, and layer, between parts of a control built from HTML primitives.

事情是这样的:

.wrapper {
  padding-top: 100px;
  width: 300px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3,100px);
  grid-template-rows: repeat(3,100px);
}

.item {
  border: 1px solid #ddd;
  height: 100px;
  width: 100px;
}
<div class="wrapper">
  <div class="item">A</div>
  <div class="item">A</div>
  <div class="item">A</div>
  <div class="item">A</div>
  <div class="item">A</div>
  <div class="item">A</div>
  <div class="item">A</div>
  <div class="item">A</div>
  <div class="item">A</div>
</div>

删除 padding-leftpadding-right for .col 类 然后将 width: 100px; 更改为 width: 100%; for .row > div > div

.box {
    width: 300px;
    padding-top: 100px;
}
.padding-0{
    padding-right:0 !important;
    padding-left:0 !important;
}
.row > div > div {
    width: 100%;
    height: 100px;
    margin: 0px;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>

<div class="container">
    <div class="box center-block">
        <div class="row">
            <div class="col-md-4 col-xs-4 padding-0">
                <div class="thumbnail">A</div>
            </div>
            <div class="col-md-4 col-xs-4 padding-0">
                <div class="thumbnail">A</div>
            </div>
            <div class="col-md-4 col-xs-4 padding-0">
                <div class="thumbnail">A</div>
            </div>
        </div>
        <div class="row">
            <div class="col-md-4 col-xs-4 padding-0">
                <div class="thumbnail">A</div>
            </div>
            <div class="col-md-4 col-xs-4 padding-0">
                <div class="thumbnail">A</div>
            </div>
            <div class="col-md-4 col-xs-4 padding-0">
                <div class="thumbnail">A</div>
            </div>
        </div>
        <div class="row">
            <div class="col-md-4 col-xs-4 padding-0">
                <div class="thumbnail">A</div>
            </div>
            <div class="col-md-4 col-xs-4 padding-0">
                <div class="thumbnail">A</div>
            </div>
            <div class="col-md-4 col-xs-4 padding-0">
                <div class="thumbnail">A</div>
            </div>
        </div>
    </div>
</div>