css - What's a cross-browser compatible way to right-align child divs and make the parent div get its width from the children? -
i have bunch of child <div>'s of variable width, want right-align within parent .  want parent <div> no wider needs to contain children. (i don't know in advance how wide children -- they'll contain dynamically generated content.)
here's example works correctly in ie 8.0 not in firefox 3.5 (child <div>'s aren't right-aligned):
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en"  "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">   <head>     <style type="text/css">       #parentdiv{float:left; text-align:right; background-color: gray;}       .childdiv{clear:both; border: 1px solid black; background-color: white;}     </style>   </head>   <body>     <div id="parentdiv">        <div class="childdiv" style="width: 25px"> </div>       <div class="childdiv" style="width: 50px"> </div>       <div class="childdiv" style="width: 100px"> </div>     </div>   </body> </html>   if add float:right childdiv's css, works in firefox 3.5 not in ie 8.0 (parentdiv's width no longer determined width of children).
is there way can desired behavior in major browsers?
update: apparently adding float:right child divs produces error in ie when i'm hosting page in iis localhost. (which doing.) perhaps issue iis setting? i'm running iis 6.0
update #2: turns out iis 6 causing page load in ie7 standards mode.  above code (with float:right added child divs) works ie8 , firefox, apparently not ie7.
i guess makes question: there simple way make work in ie7? (besides using conditional comment or css hack load different stylesheet in ie7, mean.)
edited jan 21, 2010 @ 21:00 mst : need float parent div right. floated child divs right, caused trouble in ie7. if have firebug, take @ this test page, has result you're after. tested in firefox 3.5, ie7, ie8, chrome, , safari 4.
here relevant css , html (i added margin/padding , background colors can more see effect):
   <style type="text/css">       #parent {          margin:0;          background:#ccc;          float:right;          padding:20px;       }       #parent div {          background:#eee;          margin:0 0 20px;          text-align:right;       }    </style>      ...     <div id="parent">       <div>nulla facilisi. suspendisse potenti. sed sed euismod tortor.</div>       <div>lorem ipsum, pharetra nec justo. in dapibus neque libero cursus laoreet nunc luctus.</div>       <div>lorem ipsum dolor sit amdolor.</div>    </div>   my guess why original didn't work ie7 has number of documented bugs (see here list, includes links several float bugs). if float both parent , child elements right, desired results in ie8 , other modern browsers, in ie7 parent's width won't collapse width of widest child (enter mischievous bug).
ie7 behaves expected if float both parent , child elements left, (but isn't after).
Comments
Post a Comment