2015-10-17 148 views
32

我有X個圖像(所有高度和寬度都相同),並且我希望將它們顯示在網頁上。但是,當瀏覽器調整大小時,我希望使頁面自動顯示連續圖像的最大數量(不調整圖像大小),並顯示圖像間隔固定的距離。居中對齊容器並左對齊子元素

此外,圖像應該組合在頁面的中心,並一個接一個地顯示。

例如 當瀏覽器窗口的寬度足以在一行上顯示3個圖像時,它們應顯示如下。

每行3個圖像按照固定的距離分組在一起,位於頁面的中間,一個接一個。 enter image description here

而且,如果瀏覽器變得更寬,所以4個圖像可以顯示在一行上,他們應該像這樣顯示。

每行4個圖像(不調整圖像大小),在頁面中間一個接一個地分組固定在一起。 enter image description here

到目前爲止,我已經寫了下面的代碼:

HTML

<div class="outer-div"> 
    <div class="inner-div"> 
     <div class="image-div"><img src="images/1.png"></div> 
     <div class="image-div"><img src="images/2.png"></div> 
     <div class="image-div"><img src="images/3.png"></div> 
     <div class="image-div"><img src="images/4.png"></div> 
     <div class="image-div"><img src="images/5.png"></div> 
    </div> 
</div> 

CSS

img { 
    height: 200px; 
    width: 200px; 
    padding: 10px; 
} 

.image-div { 
    display: inline; 
} 

.outer-div { 
    text-align: center; 
    width: 100%; 
} 

.inner-div { 
    text-align: left; 
    display: inline; 
} 

,因此圖像與10px的填充內嵌顯示在一個div(inner-div)裏面集中在外部div。圖像與內部div內的左側文本對齊。

但問題是如下它們顯示:

enter image description here

,喜歡如下當瀏覽器變寬 enter image description here

可有人請告訴我如何顯示喜歡的圖片第一組圖像?

即一個接一個地將每行圖像的最大數量(在不改變圖像大小的情況下)在頁面的中心分組在一起,固定距離(包裹)。

+1

檢查這支筆,不是最好的解決辦法,但你可以使用它。 http://codepen.io/anon/pen/MaOrWp – makshh

+0

這可能有助於https://jsfiddle.net/9deLmbps/3/ – Lahori

+6

這是一個非常類似(如果不是相同的)問題,幾個方法http:// stackoverflow.com/q/19527104/1811992 –

回答

11

沒有一個簡單的方法,據我所知,實現與普通的CSS佈局。以下方法使用媒體查詢爲不同的視口大小設置內部div的寬度。

如果您有相當多的項目,可以考慮使用Javascript,CSS預處理器也可能有幫助。

查看代碼片段和內嵌評論,還可以查看jsfiddle example以便於測試。

body { 
 
    margin: 10px 0; 
 
} 
 
.outer { 
 
    text-align: center; 
 
} 
 
.inner { 
 
    font-size: 0; /* fix for inline gaps */ 
 
    display: inline-block; 
 
    text-align: left; 
 
} 
 
.item { 
 
    font-size: 16px; /* reset font size */ 
 
    display: inline-block; 
 
    margin: 5px; /* gutter */ 
 
} 
 
.item img { 
 
    vertical-align: top; 
 
} 
 
@media (max-width: 551px) { /* ((100+5+5)x5)+1 */ 
 
    .inner { 
 
     width: 440px; /* (100+5+5)x4 */ 
 
    } 
 
} 
 
@media (max-width: 441px) { 
 
    .inner { 
 
     width: 330px; 
 
    } 
 
} 
 
@media (max-width: 331px) { 
 
    .inner { 
 
     width: 220px; 
 
    } 
 
} 
 
@media (max-width: 221px) { 
 
    .inner { 
 
     width: 110px; 
 
    } 
 
}
<div class="outer"> 
 
    <div class="inner"> 
 
     <div class="item"><img src="//dummyimage.com/100"></div> 
 
     <div class="item"><img src="//dummyimage.com/100"></div> 
 
     <div class="item"><img src="//dummyimage.com/100"></div> 
 
     <div class="item"><img src="//dummyimage.com/100"></div> 
 
     <div class="item"><img src="//dummyimage.com/100"></div> 
 
    </div> 
 
</div>

+0

謝謝。正是我在找的東西。您的代碼完全按照我需要的方式定位圖像。完善。 –

-4

要做到這一點,你需要使用inline-block的。這裏是它的一個很好的指南:http://learnlayout.com/inline-block.html

和我做了一個codepen這是一個有點像你的項目在這裏:http://codepen.io/noxlux/pen/rOYYdW

body { 
background: cadetblue; 
} 
.outer { 
    padding: 3%; 
} 
.inner { 
    background: aliceblue; 
    padding: 1%; 
} 
.square { 
    height: 100px; 
    width: 100px; 
    padding: 10px; 
    margin: 10px; 
    background: firebrick; 
    display: inline-block; 
} 


<div class="outer"> 
    <div class="inner"> 
    <div class="square"></div> 
    <div class="square"></div> 
    <div class="square"></div> 
    <div class="square"></div> 
    <div class="square"></div> 
    <div class="square"></div> 
    <div class="square"></div> 
    </div> 
</div> 
-2

body { 
 
    margin: 10px 0; 
 
} 
 

 
.outer { 
 
    text-align: left; 
 
    width:90%; 
 
    margin:auto; 
 
    
 
} 
 
.inner { 
 
    font-size: 0; /* fix for gaps */ 
 
    display: inline-block; 
 
    text-align: left; 
 
} 
 
.item { 
 
    font-size: 16px; /* reset size */ 
 
    display: inline-block; 
 
    margin: 5px; /* gutter */ 
 
    height:100px; 
 
    width:100px; 
 
    background:yellow; 
 
}
<div class="outer"> 
 
    <div class="inner"> 
 
     <div class="item"></div> 
 
     <div class="item"></div> 
 
     <div class="item"></div> 
 
     <div class="item"></div> 
 
     <div class="item"></div> 
 
     
 
    </div> 
 
</div>

9

最大數量每行圖像(無需調整圖像大小),一個接一個,在頁面中心分組,一起固定距離(包裹)。

這是一個非常好的問題。起初看起來非常簡單,但最佳結果很難實現。

我不相信有一種方法可以在不使用媒體查詢的情況下實現預期的行爲。

然而,利用一些媒體查詢,準確地知道寬度圖像,並最大可能數每排圖像,我們可以解決使用display: inline-*基礎性的問題。


顯示:inline-block的

應該支持舊的瀏覽器,因爲它的出現自CSS2。我們必須使用一些小技巧來防止在項目之間渲染不需要的空白區域。

訣竅是設置CSS屬性font-size: 0


顯示:內聯柔性

該解決方案利用了CSS flexbox及其對現代的browers一個不錯的選擇的。


顯示:內聯表

支持,因爲CSS2也沒有,以便在需要的技巧,使其發揮作用。


顯示:內聯

最終的結果是不是一個由作者預期,由於第二行中的元素將被中心對準,而不是左對齊。這個解決方案的好處在於,它在沒有圖像寬度和媒體查詢的先前知識的情況下工作。


.wrapper { 
 
    text-align: center; 
 
} 
 
.inline { 
 
    font-size: 0; 
 
    display: inline; 
 
} 
 
.inline-block { 
 
    display: inline-block; 
 
    font-size: 0; 
 
    text-align: left; 
 
} 
 
.inline-flex { 
 
    display: inline-flex; 
 
    flex-wrap: wrap; 
 
} 
 
.inline-table { 
 
    display: inline-table; 
 
    text-align: left; 
 
} 
 
.item { 
 
    margin: 10px; 
 
} 
 
@media (max-width: 240px) { 
 
    .inline-block, 
 
    .inline-flex, 
 
    .inline-table { 
 
    width: 120px; 
 
    } 
 
} 
 
@media (min-width: 241px) and (max-width: 360px) { 
 
    .inline-block, 
 
    .inline-flex, 
 
    .inline-table { 
 
    width: 240px; 
 
    } 
 
} 
 
@media (min-width: 361px) and (max-width: 480px) { 
 
    .inline-block, 
 
    .inline-flex, 
 
    .inline-table { 
 
    width: 360px; 
 
    } 
 
} 
 
@media (min-width: 481px) and (max-width: 600px) { 
 
    .inline-block, 
 
    .inline-flex, 
 
    .inline-table { 
 
    width: 480px; 
 
    } 
 
} 
 
@media (min-width: 601px) and (max-width: 720px) { 
 
    .inline-block, 
 
    .inline-flex, 
 
    .inline-table { 
 
    width: 600px; 
 
    } 
 
} 
 
@media (min-width: 721px) and (max-width: 840px) { 
 
    .inline-block, 
 
    .inline-flex, 
 
    .inline-table { 
 
    width: 720px; 
 
    } 
 
}
<h1>display: inline-block</h1> 
 

 
<div class="wrapper"> 
 

 
    <div class="inline-block"> 
 

 
    <img class="item" src="http://dummyimage.com/100"> 
 

 
    <img class="item" src="http://dummyimage.com/100"> 
 

 
    <img class="item" src="http://dummyimage.com/100"> 
 

 
    <img class="item" src="http://dummyimage.com/100"> 
 

 
    <img class="item" src="http://dummyimage.com/100"> 
 

 
    <img class="item" src="http://dummyimage.com/100"> 
 

 
    </div> 
 

 
</div> 
 

 
<h1>display: inline-flex</h1> 
 

 
<div class="wrapper"> 
 

 
    <div class="inline-flex"> 
 

 
    <img class="item" src="http://dummyimage.com/100"> 
 

 
    <img class="item" src="http://dummyimage.com/100"> 
 

 
    <img class="item" src="http://dummyimage.com/100"> 
 

 
    <img class="item" src="http://dummyimage.com/100"> 
 

 
    <img class="item" src="http://dummyimage.com/100"> 
 

 
    <img class="item" src="http://dummyimage.com/100"> 
 

 
    </div> 
 

 
</div> 
 

 
<h1>display: inline-table</h1> 
 

 
<div class="wrapper"> 
 

 
    <div class="inline-table"> 
 

 
    <img class="item" src="http://dummyimage.com/100"> 
 

 
    <img class="item" src="http://dummyimage.com/100"> 
 

 
    <img class="item" src="http://dummyimage.com/100"> 
 

 
    <img class="item" src="http://dummyimage.com/100"> 
 

 
    <img class="item" src="http://dummyimage.com/100"> 
 

 
    <img class="item" src="http://dummyimage.com/100"> 
 

 
    </div> 
 

 
</div> 
 

 
<h1>display: inline</h1> 
 

 
<div class="wrapper"> 
 

 
    <div class="inline"> 
 

 
    <img class="item" src="http://dummyimage.com/100"> 
 

 
    <img class="item" src="http://dummyimage.com/100"> 
 

 
    <img class="item" src="http://dummyimage.com/100"> 
 

 
    <img class="item" src="http://dummyimage.com/100"> 
 

 
    <img class="item" src="http://dummyimage.com/100"> 
 

 
    <img class="item" src="http://dummyimage.com/100"> 
 

 
    </div> 
 

 
</div>

+0

這似乎工作假設[舊的瀏覽器兼容性](http://caniuse.com/#feat=flexbox)不是問題 – asm

1

我認爲,考慮到CSS的可能性衆人,這是用最少的代碼相當優雅和多用途的解決方案。

下面的代碼片段包含了所有必要的CSS,並附帶廣泛的評論。 最好在'整頁'模式下運行。初始調整瀏覽器大小,直到'rcb 1'有6列。然後開始滾動和調整大小以查看各種效果。

乍一看,你可能不知道,但這個簡單的代碼有很大潛力,畫廊,幻燈片,滾動框(垂直和水平方向)等

雖然也許不是100%的解決問題的辦法,我對結果非常滿意!

請務必仔細閱讀並給予您的讚賞評論!

-Addendum-:該解決方案已經過測試工作:

  • 的Android 5+:默認瀏覽器
  • 的Windows7-X32:谷歌瀏覽器(46+),火狐(41+) ,火狐DE(43+) 和IE11 +

UPDATE 15年11月20日一些代碼的修改,看評論。

/* A few initial globals I always use */ 
 
html, body   { box-sizing: border-box; height: 100%; width: 100%; 
 
         margin: 0; padding: 0; border: 0; cursor: default } 
 
*, *:before, *:after { box-sizing: inherit } 
 
body     { max-width: 100%; margin: 0 auto } 
 

 

 
/*******************************/ 
 
/*  The important code  */ 
 
/*******************************/ 
 
.rcb { /* [MANDATORY] Main Responsive Component Box container */ 
 
    overflow-x: hidden; /* Content wraps vertically, no horizontal scollbar needed */ 
 
    overflow-y: auto; /* Vertical scrollbar when needed */ 
 
    width: 100%;  /* Maximum width within parent element */ 
 
    height: auto;  /* Adjust height to child element needs */ 
 
    padding: 15px  /* Needed to get from under autohide IE scrollbar, check difference with FF/Ch */ 
 
} 
 
.rcb-cmp-list { /* [MANDATORY] Component list, direct child of RCB, controls the flexbox behaviour */ 
 
    display: flex;  /* make element a flexible layout container */ 
 
    flex-wrap: wrap; /* a row of N columns, wrapping within frame*/ 
 
} 
 
.rcb-cmp-item { /* [RECOMMENDED] RCB component list item, default RCB influences flexbox behaviour of parent list */ 
 
    flex: 1 1;   /* add auto or 0, or add some min required width (fiddle away!) */ 
 
    min-width: 165px; /* best value is a multiple or division of 330px for all types of devices */ 
 
    max-width: 100%; /* don't make this too small, leave as is or make it a multiple of min-width */ 
 
    max-height: 100%; /* ditto */ 
 
    min-height: auto; /* override if you want to set minimum; interacts with flex-basis! */ 
 
    overflow: hidden; /* Chop off outside content */ 
 
    margin: 8px   /* some space between the boxes */ 
 
} 
 
.rcb-cmp-item img { 
 
    display: block } /* -Add 11/20/15 - remove the gap below image elements 
 
          (by default, IMG is an inline element and causes bottom space) */ 
 

 
.rcb-cmp-item-cnt > * { /* [OPTIONAL] RCB component list content container, fully occupies parent */ 
 
    min-width: 100%; /* min/max 100% makes sizes fixed to parent */  
 
    max-width: 100% 
 
} 
 

 
/* [OPTIONAL] Media Queries to keep box sizes within reasonable limits (corrected for 8px margin) */ 
 
@media all and (min-width: 721px) { .rcb-cmp-item { max-width: calc(33% - 16px) } } 
 
@media all and (min-width: 991px) { .rcb-cmp-item { max-width: calc(25% - 16px) } } 
 
@media all and (min-width: 1321px) { .rcb-cmp-item { max-width: calc(20% - 16px) } } 
 

 
/*******************************/ 
 
/* That's it, the rest is demo */ 
 
/*******************************/ 
 

 
/* which you can replace with your own */ 
 
body     { font-family: Lato; background-color: rgba(96,125,139,1); /* bluegrey 500*/ 
 
          color: rgba(255,255,255,.87); font-size: 1vmax; line-height: 1.3vmax; } 
 
h3,   
 
.rcb-cmp-list h4  { text-align: center } 
 

 
.rcb-cmp-item   { background-color: #ffc107; 
 
          color: rgba(0,0,0,.87) /* amber 500 */; 
 
          padding: 4px; /* -update 11/20/15 - see add of ".rcb-cmp-item img" */ 
 
          border-radius: 2px } 
 
.rcb-cmp-item, 
 
.rcb-cmp-item p img  { box-shadow: 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 
 
             0px 3px 1px -2px rgba(0, 0, 0, 0.20), 
 
             0px 1px 5px 0px rgba(0, 0, 0, 0.12) } 
 

 
.rcb-cmp-item p img  { vertical-align: middle } 
 
.rcb-cmp-item p   { font-weight: 400; letter-spacing: 0 } 
 

 
.rcb-cmp-item iframe { border: none }
<h3>rcb 1</h3> 
 
    <div id="rcb-control-1" class="rcb"> 
 
     <div class="rcb-cmp-list"> 
 
      <h4 class="rcb-cmp-item">200x200 rectangles</h4> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/200"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/200"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/200"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/200"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/200"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/200"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/200"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/200"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/200"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/200"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/200"></div></div> 
 
    
 
      <h4 class="rcb-cmp-item">odd sized rectangles</h4> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/100"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/200"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/300"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/400"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/500"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/100"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/200"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/300"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/400"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/500"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/100"></div></div> 
 
     </div> 
 
    </div> 
 

 
    <h3>rcb 2</h3> 
 
    <div id="rcb-control-2" class="rcb"> 
 
     <div class="rcb-cmp-list"> 
 
      <h4 class="rcb-cmp-item">300x150 oblongs</h4> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/300x150"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/300x150"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/300x150"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/300x150"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/300x150"></div></div> 
 
    
 
      <h4 class="rcb-cmp-item">odd sized oblongs</h4> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/100x50"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/200x100"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/300x150"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/400x200"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/500x250"></div></div> 
 
     </div> 
 
    </div> 
 
    
 
    <h3>rcb 3</h3> 
 
    <div id="rcb-control-3" class="rcb"> 
 
     <div class="rcb-cmp-list"> 
 
      <h4 class="rcb-cmp-item">portrait 9:16</h4> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/180x320"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/180x320"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/180x320"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/180x320"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/180x320"></div></div> 
 
    
 
      <h4 class="rcb-cmp-item">landscape 16:9</h4> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/320x180"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/320x180"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/320x180"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/320x180"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/320x180"></div></div> 
 
    
 
      <h4 class="rcb-cmp-item">mixed 16:9 - 9:16</h4> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/180x320"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/320x180"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/180x320"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/180x320"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/320x180"></div></div> 
 
     </div> 
 
    </div> 
 
    
 
    <h3>rcb 4</h3> 
 
    <div id="rcb-control-4" class="rcb"> 
 
     <div class="rcb-cmp-list"> 
 
      <h4 class="rcb-cmp-item">odd ones out</h4> 
 
      <div class="rcb-cmp-item">empty rcb-cmp</div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt">empty rcb-cmp-item-cnt</div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><p>While I used a few oddly shaped images in this demo, on average most images will have ratio 3:2, 4:3 or 16:9</p></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/100x200"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><iframe src="http://www.youtube.com/embed/XGSy3_Czz8k?autoplay=0"></iframe><h4>live media</h4></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/200x300"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt">this is some text div with a <a href="javascript:void(0)">clickable anchor</a></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/320x200"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/400x300"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><p>this is some paragraph with a <a href="javascript:void(0)">clickable anchor</a> and a tiny image <img src="http://dummyimage.com/35"> somewhere inside</p></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/100x150"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/200x100"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/300x320"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/200"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/200"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/400x100"></div></div> 
 
      <div class="rcb-cmp-item"><div class="rcb-cmp-item-cnt"><img src="http://dummyimage.com/257x133"></div></div> 
 
     </div> 
 
    </div>

6

這裏有一個通用的解決方案可爲您和他人的工作。

HTML

<ul> 
    <li>1</li> 
    <li>2</li> 
    <li>3</li> 
    <li>4</li> 
    <li>5</li> 
</ul> 

CSS

ul { 
    margin: 0 auto;    /* center container */ 
    width: 1000px; 
    padding-left: 0;    /* remove list padding */ 
    list-style-type: none; 
    font-size: 0;    /* remove inline-block white space; 
            see https://stackoverflow.com/a/32801275/3597276 */ 
} 

li { 
    display: inline-block; 
    font-size: 60px;    /* restore font size removed in container */ 
    width: 150px; 
    height: 150px; 
    padding: 5px; 
    margin: 15px 25px; 
    box-sizing: border-box; 
    text-align: center; 
    line-height: 150px; 
} 

@media screen and (max-width: 430px) { ul { width: 200px; } } 
@media screen and (min-width: 431px) and (max-width: 630px) { ul { width: 400px; } } 
@media screen and (min-width: 631px) and (max-width: 830px) { ul { width: 600px; } } 
@media screen and (min-width: 831px) and (max-width: 1030px) { ul { width: 800px; } } 

DEMO

回覆:Flexbox的:雖然Flexbox將是一個真棒工具,它不適合這個特殊的最佳解決方案問題。我在這裏解釋我的推理:How to center a flex container but left-align flex items

-1

我想我有一個解決方案。

.inner作爲內聯塊處理,可以使用text-align: center將項目組保持在100%寬度div的中間。很好地縮小比例。

.outer { 
    width: 100%; 
    text-align: center; 
} 

.inner { 
    display: inline-block; 
} 

.item { 
    display: inline-block; 
    float: left; 
    margin: 5px; 
    width: 100px; 
    height: 100px; 
} 

Get'fiddle機智! 「!重要」 http://jsfiddle.net/sLz2ok92/2/

0

你不需要在這裏做任何複雜的工作,只是把重要

.outer-div { 
    text-align: center; 
    width: 100%; 
} 

.inner-div { 
    text-align: left !important; 
    display: inline; 
} 

會在這種情況下工作

+0

你可以使用外部div的填充,或內部div的邊緣根據neccessity。 –

0

我沒有時間去改善下面的內容,但希望能夠以某種方式幫助你! 許多案件都包括在內! 如果您正在尋找PureCSS解決方案,請使用Flexbox!

.flex-container { 
 
    display: -ms-inline-flexbox; 
 
    display: -webkit-inline-flex; 
 
    display: inline-flex; 
 
    -webkit-flex-direction: row; 
 
    -ms-flex-direction: row; 
 
    flex-direction: row; 
 
    -webkit-flex-wrap: wrap; 
 
    -ms-flex-wrap: wrap; 
 
    flex-wrap: wrap; 
 
    -webkit-justify-content: center; 
 
    -ms-flex-pack: center; 
 
    justify-content: center; 
 
    -webkit-align-content: flex-start; 
 
    -ms-flex-line-pack: start; 
 
    align-content: flex-start; 
 
    -webkit-align-items: flex-start; 
 
    -ms-flex-align: start; 
 
    align-items: flex-start; 
 
} 
 

 
.flex-item { 
 
    -webkit-flex: 0 1 auto; 
 
    -ms-flex: 0 1 auto; 
 
    flex: 0 1 auto; 
 
    -webkit-align-self: auto; 
 
    -ms-flex-item-align: auto; 
 
    align-self: auto; 
 
} 
 
.flex-item:last-child { margin-right: auto } 
 

 

 
/** IGNORE FOLLOWING **/ 
 
.flex-container { 
 
    padding: 1em; 
 
    border: 1px solid black; 
 
    margin: 0 0 1em 0; 
 
} 
 
.box { 
 
    width: 100px; 
 
    height: 100px; 
 
    visibility: visible; 
 
    margin: 15px; 
 
} 
 

 
.size-lg { width: 90% } 
 
.size-sm { width: 60% } 
 
.size-xs { width: 40% } 
 

 
.size-lg .box { background-color: yellow; } 
 
.size-sm .box { background-color: yellow; } 
 
.size-xs .box { background-color: yellow; }
<div class="flex-container size-lg"> 
 
    
 
    <div class="flex-item box"></div> 
 
    <div class="flex-item box"></div> 
 
    <div class="flex-item box"></div> 
 
    <div class="flex-item box"></div> 
 
    <div class="flex-item box"></div> 
 
    <div class="flex-item box"></div> 
 
    <div class="flex-item box"></div> 
 
    <div class="flex-item box"></div> 
 
    <div class="flex-item box"></div> 
 
    <div class="flex-item box"></div> 
 
    <div class="flex-item box"></div> 
 
    
 
</div> 
 

 
<div class="flex-container size-sm"> 
 
    
 
    <div class="flex-item box"></div> 
 
    <div class="flex-item box"></div> 
 
    <div class="flex-item box"></div> 
 
    <div class="flex-item box"></div> 
 
    <div class="flex-item box"></div> 
 
    <div class="flex-item box"></div> 
 
    <div class="flex-item box"></div> 
 
    <div class="flex-item box"></div> 
 
    <div class="flex-item box"></div> 
 
    <div class="flex-item box"></div> 
 
    <div class="flex-item box"></div> 
 
    
 
</div> 
 

 
<div class="flex-container size-xs"> 
 
    
 
    <div class="flex-item box"></div> 
 
    <div class="flex-item box"></div> 
 
    <div class="flex-item box"></div> 
 
    <div class="flex-item box"></div> 
 
    <div class="flex-item box"></div> 
 
    <div class="flex-item box"></div> 
 
    <div class="flex-item box"></div> 
 
    <div class="flex-item box"></div> 
 
    <div class="flex-item box"></div> 
 
    <div class="flex-item box"></div> 
 
    <div class="flex-item box"></div> 
 
    
 
</div>