質問

私はクリス・コイヤーズを実装しようとしています CSS列を使用して、画像のシームレスなレスポンシブグリッドを作成します。

クリスのファイルをサーバーに入れましたが、すべてがうまく見えました。私が変更した唯一のことは、実際の画像でした。

今、あなたが私に見るように テストページ, 、指定された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;
  }
}
役に立ちましたか?

解決 2

答えがありますが、それは回避策であり、修正ではありません。画像を変更して、高さが300px、他のもの、370pxになりました。基本的に、私は画像の高さを変化させ、すべての画像の幅を同じ、300pxに保ちました。したがって、答えは、正方形の画像を使用しないか、すべての正方形の画像を使用する場合は、5の代わりに列 - カウント:4を使用します。

誰かがこれが起こる理由についてさらに洞察を提供できるなら、それは素晴らしいことです。

他のヒント

私のブラウザが1219 px幅にヒットしたとき(少なくともとして 暖炉 教えてください)私は5つのコルを手に入れます。それ以下では4つも取得します。 Firefox 10。

起こっている可能性のあるいくつかのこと:

  • 私の垂直スクロールバーの幅はちょうど19pxです
  • Firefoxウィンドウの左右の境界線はそれぞれ9 pxで、合計18px

これらの1つがメディアクエリに含まれているように思われます。


編集:ちょっと奇妙ですが、一見 W3メディアクエリサイト それを示唆しているようです:

「幅」メディア機能は、出力デバイスのターゲットディスプレイ領域の幅を説明しています。連続メディアの場合、これはビューポートの幅です(CSS2、セクション9.1.1 [CSS21]で説明されています) レンダリングされたスクロールバーのサイズを含みます (もしあれば)

他の誰かが検索結果でこれを見つけた場合に備えて、それは画像がインラインであるという事実であるため、それらの間にいくつかのスペースがあります。

CSSのインライン要素間の間隔を削除するにはどうすればよいですか?

私はこれを修正するためにセクションでフォントサイズ:0を使用します:)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top