CSSで高さの指定を行い、テキストがその長さを超えた場合はスクロール式にした場合は
以下の様なコードになるかと思います。(幅、高さをそれぞれ100px、箱のmarginおよびpadding、borderはそれぞれ10pxとします。
<!doctype html> <html> <head> <style type="text/css"> div#nine{ overflow: hidden; width: 480px; padding: 0; } div#nine > div{ width: 100px; height: 100px; overflow: scroll; border: 10px solid #000; padding: 10px; margin: 10px; float: left; } </style> </head> <body> <div id="nine"> <div>1</div> <div>2</div> <div>3</div> <div>4</div> <div>5</div> <div>6</div> <div>7</div> <div>8</div> <div>9</div> </div> </body> </html>
こんな感じで できます。
<style> #product-list { padding: 0; width: 500px; /* 外側のサイズを決める */ } .product { width: 32%; /* 三つ入れるとして、padding を考慮した相対値で幅を決める */ margin: 2px; float: left; } .product:nth-child(3n+1) { /* 三つ毎に行を変える */ clear: both; } </style> <div id="product-list"> <div class="product">あ</div> <div class="product">い</div> <div class="product">う</div> <div class="product">あ</div> <div class="product">い</div> <div class="product">う</div> <div class="product">あ</div> <div class="product">い</div> <div class="product">う</div> <div class="product">あ</div> <div class="product">い</div> <div class="product">う</div> <!-- 三つ毎とか気にせずに、だーっと書いて OK --> </div>
jsFiddle で試したのがこちら。
https://jsfiddle.net/a_kuma3/93qwf5f3/
こういうことでしょうか。
ポイントは、
・.row に overflow: hidden を指定している
・.col にマイナス margin と padding を指定している
ことです。
<!doctype html> <html> <head> <style type="text/css"> .row { background-color: pink; width: 300px; min-height: 100%; overflow: hidden; } .col { float: left; width: 100px; height: 100%; padding-bottom: 30000px; margin-bottom: -30000px; } .left { background-color: blue; } .center { background-color: yellow; } .right { background-color: red; } </style> </head> <body> <div> <div class="row"> <div class="col left"> <p>a</p> <p>b</p> <p>c</p> <p>d</p> </div> <div class="col center"> <p>a</p> </div> <div class="col right"> <p>a</p> <p>b</p> </div> </div> </div> </body> </html>