fancy css float + clearing -
okay, have 4 divs of unknown height, fixed width. although height unknown, can assumed div1 > div3 > div2. (currently) in row, floated. example:
1111 2222 3333 4444 1111 2222 3333 4444 1111 2222 3333 1111      3333 1111   when resize viewport, i'd rightmost element reposition itself, "highest" possible position, , not clearing left of it. eg:
1111 2222 3333 1111 2222 3333 1111 2222 3333 1111 4444 3333 1111 4444   (this not happens under ordinary circumstances. 4 positioned further down, such clears bottom of 3)
and, on next resize, "compact" arrangement, so:
1111 2222 1111 2222 1111 2222 1111 3333 1111 3333 4444 3333 4444   (and again, 4 positioned lower down, such clears 3).
and lastly:
1111 1111 1111 1111 1111 2222 2222 2222 3333 3333 3333 4444 4444   i've tried creative arrangements, wrapping pairs of divs in container div , applying different styles that, positioning elements absolutely, setting min / max widths on container divs, invisible shims, etc, etc. i've had success of these scenarios, no solution successful in 4 possibilities. ideas? also, not use javascript-- i'm looking pure-css solution, if exists. thanks
using markup:
<div class="column" id="col-1"><h2>one</h2></div> <div class="column" id="col-2"><h2>two</h2></div> <div class="column" id="col-3"><h2>three</h2></div> <div class="column" id="col-4"><h2>four</h2></div>   with media queries, can adjust styles based on size of viewport:
body { margin: 0; padding: 0; }  .column {   width: 200px;   display: inline;   float: left;   overflow: hidden; }  .column h2 { text-align: center; }  #col-1 { padding: 400px 0; background: #ccf; } #col-2 { padding: 200px 0; background: #fcc; } #col-3 { padding: 300px 0; background: #cfc; } #col-4 { padding: 100px 0; background: #ccc; }  @media (max-width: 800px) {   body { width: 600px; }   #col-3 { float: right; }   #col-4 { display: block; float: none; } }  @media (max-width: 600px) {   body { width: 400px; }   #col-1, #col-4 { float: left; clear: left; }   #col-2, #col-3 { float: right; clear: right; } }  @media (max-width: 400px) {   body { width: 200px; }   .column { display: block; float: none; } }     the drawback these media queries aren't supported in ie8 , less. however, can fake minimal amount of javascript sets class on document body when window resized: can specify css selections based on that, e.g.  body.width-200 .column { /* ... */ }.
Comments
Post a Comment