CSS列を使用してシームレスなレスポンシブ画像グリッドを作成するChris Coyierの例を実装しようとしています。
Chris のファイルを自分のサーバーに置いたところ、すべて問題ないように見えました。私が変更したのは実際の画像だけでした。
ここで、私のテスト ページでわかるように、指定した 5 列ではなく 4 列の画像しかありませんcolumn-count:5;
。5 番目の列は内容のない単なる空白です。
これは、ブラウザ ウィンドウが 1200px より大きい場合にのみ発生します。ブラウザー ウィンドウが 1200px 未満の場合、メディア クエリが開始され、列数が 4、3、2、そして最後に 1 と減少します。つまり、このバグはcolumn-count:
が 5以上の場合にのみ発生します。
これは、FF 10、Chrome 17 以降、および Safari 5 以降で発生します。
どんな助けでも大歓迎です!
トリミングされた HTML は次のとおりです。
<section id="photos">
<img src="images/iso_o.jpg" alt="Isometric" />
<img src="images/iso_o.jpg" alt="Isometric" />
<img src="images/iso_o.jpg" alt="Isometric" />
<img src="images/iso_o.jpg" alt="Isometric" />
<img src="images/iso_o.jpg" alt="Isometric" />
<img src="images/iso_o.jpg" alt="Isometric" />
...
</section>
変更前の CSS は次のとおりです。
* { margin: 0; padding: 0; }
#photos {
/* Prevent vertical gaps */
line-height: 0;
-webkit-column-count: 5;
-webkit-column-gap: 0px;
-moz-column-count: 5;
-moz-column-gap: 0px;
column-count: 5;
column-gap: 0px;
}
#photos img {
/* Just in case there are inline attributes */
width: 100% !important;
height: auto !important;
}
@media (max-width: 1200px) {
#photos {
-moz-column-count: 4;
-webkit-column-count: 4;
column-count: 4;
}
}
@media (max-width: 1000px) {
#photos {
-moz-column-count: 3;
-webkit-column-count: 3;
column-count: 3;
}
}
@media (max-width: 800px) {
#photos {
-moz-column-count: 2;
-webkit-column-count: 2;
column-count: 2;
}
}
@media (max-width: 400px) {
#photos {
-moz-column-count: 1;
-webkit-column-count: 1;
column-count: 1;
}
}