2013-04-06 61 views
5

您在圖像1中看到的「圖塊」(白框)對用戶屏幕有響應。如果屏幕尺寸不夠大,則會在右側留下間隙。我想要做的是實現結果作爲圖像2.看到這裏是我到目前爲止的代碼,這些具體的元素..CSS中心響應DIV

HTML:

<div class="main"> 
    <div class="inner"> 
     <div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div><div class="tile"></div> 
    </div> 
</div> 

CSS:

.main{ 
    width:100%; 
    background: #000; 
} 

.main .inner{ 
    margin:10px; 
    min-width: 140px; 
    background: red; 
} 

.main .inner .tile{ 
    margin:10px; 
    height: 120px; 
    width: 120px; 
    background: #fff; 
    display: inline-block; 
} 

IMAGE 1:enter image description here

圖2:enter image description here

+0

單個佈局網格目前無法支持此功能。有關爲什麼不解釋的解釋,請參閱[此答案](http://stackoverflow.com/a/15231163/1306809)。但是,不同大小的多個版面網格可以支持它,使用媒體查詢根據屏幕大小選擇正確的版面,如@axrwkr所建議的。 – 2013-04-07 01:58:55

回答

7

你可以用媒體做查詢以各種瀏覽器寬度設置.inner類的寬度,然後將margin-leftmargin-right屬性設置爲auto來居中。設置.main類的padding-toppadding-bottom屬性,而不是在.inner類中設置頂部和底部頁邊空白。使用.inner類中的padding.tile類中的border的組合將間隔分開。

有關媒體查詢的詳細介紹:CSS media queries

example

CSS

.main{ 
    width: 100%; 
    background: #000; 
    padding-top: 10px; 
    padding-bottom: 10px; 
} 

.main .inner{ 
    padding: 5px; 
    font-size: 0px; 
    display: table; 
    margin-left: auto; 
    margin-right: auto; 
    background-color: red; 
} 

.main .inner .tile{ 
    margin: 0px; 
    padding: 0px; 
    border: 5px solid red; 
    height: 120px; 
    width: 120px; 
    background: #fff; 
    display: inline-block; 
} 

設置每個瀏覽器的寬度媒體查詢,在這個例子中,我只上升到800像素,但您可以根據需要添加更多。

CSS(續)

@media (min-width: 280px) { 
    .main .inner{ 
     width: 130px; 
    } 
} 

@media (min-width: 320px) { 
    .main .inner{ 
     width: 260px; 
    } 
} 

@media (min-width: 480px) { 
    .main .inner{ 
     width: 390px; 
    } 
} 

@media (min-width: 640px) { 
    .main .inner{ 
     width: 520px; 
    } 
} 

@media (min-width: 800px) { 
    .main .inner{ 
     width: 780px; 
    } 
} 

媒體查詢用於的.inner寬度設定爲130px倍數其是.tile的與10px的邊界的寬度。

如果你想改變的瓷磚之間的間隔,你需要改變的.main類的.tileborder,在.innerpaddingmargin-topmargin-bottom和在各指定的width媒體查詢。

+1

這可能是目前唯一可用的CSS解決方案,它使用媒體查詢根據瀏覽器寬度選擇不同的佈局網格。我認爲這是或JavaScript。 – 2013-04-07 01:47:32

+0

非常感謝! – Harry 2013-04-07 03:35:50

0
.main .inner{ 
    min-width: 140px; 
    background: red; 
    text-align:center; 
    } 

添加文本對齊:中心CSS屬性http://jsfiddle.net/dolours/afKgg/

+0

有什麼辦法讓最後一行左對齊嗎? – Harry 2013-04-07 00:13:43

0

您可以設置最大寬度爲.inner然後有text-align: center.main

+0

有什麼辦法讓最後一行左對齊嗎? – Harry 2013-04-07 00:23:52