2017-01-26 256 views
1

我有一个网格系统,在列之间填充10px。但我不想在整个网格的左侧和右侧填充。我试图把列放在一个大的包装中,并添加margin-left:-10px和margin-right:-10px,但它只是将网格向左移动。删除网格系统左侧和右侧的填充

<div class="column column-1"><div class="inner"></div></div> 
<div class="column column-2"><div class="inner"></div></div> 
<div class="column column-3"><div class="inner"></div></div> 
<div class="column column-1"><div class="inner"></div></div> 
<div class="column column-1"><div class="inner"></div></div> 
<div class="column column-1"><div class="inner"></div></div> 

CSS:

.row, 
.column { 
    box-sizing: border-box; 
} 
.column { 
    position: relative; 
    float: left; 
    display: inline-block; 
} 
.column-1 { 
    width: 33.3333333%; 
} 
.column-2 { 
    width: 66.6666666%; 
} 
.column-3 { 
    width: 100%; 
} 
.column { 
    min-height: 60px; 
    padding: 10px; 
} 
.inner { 
    height: 100px; 
    width: 100%; 
    background: black; 
    display:block; 
    position: relative; 
} 

JS Fiddle

+0

将这些div动态添加,也可以与其他的div分开行? (将行放在自己的容器中) – Gezzasa

回答

3

我注意到你有你的CSS定义的.row类,但不使用它。 如果您开始使用它并将您的列嵌入到一行中,则可以使用:first-child:last-child选择器来更改结束列的边距。

像这样

.row .column:first-child { 
    padding-left: 0; 
} 

.row .column:last-child { 
    padding-right: 0; 
} 

<div class="row"> 
    <div class="column column-1"><div class="inner"></div></div> 
    <div class="column column-2"><div class="inner"></div></div> 
</div> 

Fiddle

+0

非常感谢!你会如何推荐我独立设计每个专栏的方式,只在每个专栏的内部添加其他课程? – RhysE96

+0

取决于您的要求。但是没有任何东西可以阻止您将更多类直接添加到单个列以添加额外样式。 – JamesT