2017-03-15 23 views
0

我有一套的div,像這樣如何設計一對元素?

<div class="row header"></div> 
<div class="row"></div> 
<div class="row"></div> 
<div class="row"></div> 
<!-- add spacing here by adding margin to the row above --> 
<div class="row header"></div> 
<div class="row"></div> 
<div class="row"></div> 

正如我不能改變的標記,我不知道如果我只能無需對其他的div任何更改添加.row.row.header之間的空間。理想情況下,我需要將margin-bottom添加到.row.header之前的每個.row

這是可能的CSS所有沒有添加額外的類和黑客?

+3

你不能保證金top'加上''到.row.header'? –

+0

@TomaszRup如果所有'.row.header'元素都需要這樣的邊距,那麼'margin-top'就足夠了。用戶明確要求「.row'和'.row.header'之間的空格」。 –

回答

1

您可以使用adjacent sibling selector

.row + .row.header { 
    margin-top: 20px; 
} 

這隻會頂邊距添加到跟從.row元素,確保第一.row.header元件不受那些.row.header元素。

0

它更容易上邊距增加的div既rowheader

.row.header { 
margin-top: 5px; 
} 
0
If you want apply margin only where is the comment is written you can add css for that as follows 

div.row:nth-of-type(4) { 
    margin-bottom: 20px; 
} 

but if you want add margin to every 3'd div after .header, you need to apply css as follows 

div.row:nth-of-type(4n) { 
    margin-bottom: 20px; 
} 

希望這將填補滿您的要求。

0

如果.row.header是其父項的第一個孩子,您也可以使用:not()選擇器。對於more info.

.row.header:not(:first-child) { 
    margin-top: 10px; 
}