CSS - Vertical Align To Bottom Of Floating Div
EDIT: hmm the embedded image isn't showing for me... here's a link: http://i34.tinypic.com/dh7qr6.jpg
Referencing the attached image, any ideas about how to achieve this layout using floats (rather than tables)? The part that's giving me trouble is the bottom-left set of links, that should be aligned to the bottom of the container. Also, the width of the container is not fixed - it shouldn't have width specified at all, and expand to fit it's contents. I'm not worried at all about fonts, borders, padding, colors, etc, just trying to achieve the attached macro concept using CSS, best-practices and w/out tables. This layout is easily achieved using tables; the following markup (using tables) will render and behave as described - regardless of the size of the links, the size of the image, or the length of the description, but obviously I'd like to know how to do this with best practices of floating divs. Code: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" > <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="robots" content="noindex, nofollow" /> <title>Title</title> <style type="text/css"> td { vertical-align : top; } td.links { text-align : right; } td.links.bottom { vertical-align : bottom; } td.description { width : 150px; } </style> </head> <body> <table> <tr> <td class="links"> <a href="#">Link</a> <br /> <a href="#">Another Link</a> </td> <td rowspan="2"> <img src="http://static.howstuffworks.com/gif/code-breakers-1.jpg" /> </td> <td class="description" rowspan="2"> <h1>Title</h1> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p> </td> </tr> <tr> <td class="bottom links"> <a href="#">Link</a> <br /> <a href="#">Another Link</a> </td> </tr> </table> </body> </html> TYIA for any suggestions. Similar TutorialsThere are floods of threads pertaining to vertical aligning so I hope i'm not assaulted for asking this How would I go about vertically align content inside of a floating div with a fixed width and height. This is what I have so far. http://section31.us/temp/gallery/images.htm I obviously would like to have those images vertically aligned, can anyone help? I have a div container that changes size depending on the information inside it... i also have a navi bar that is on everysingle page.... and i want it to always be 20px from the bottom.... i tried vertical-align:bottom and put a margin-bottom:20px on it... but the vertical-align didnt seem to work... i must be missing something reflectionstour.com ^ Site I am working on. So I have these nice little gifs that are curving the corners. In FF3 they work fine and it is XHTML/CSS 2.1 valid. Which of course means that they are not working right in IE 7 (haven't bothered testing 8, as I run Linux and it is hard enough to locate an IE7 to test it on.) So I have tried a few different searches and don't really know what to even call it. And no webdev tool bar on IE to help tell me. "vertical-align: bottom IE7 ~padding" "bottom padding issues IE7" I would rather not do separate CSS sheets as it is a simple site, there shouldn't be an issue here. Thanks! Wil Hi, Does anyone know how to veritcally align text using CSS? like <tr valign='middle'> when using tables. My page is on: http://www.3003online.com/demos/ecoceylon/v2/ You can see a difference in the "Home - About Us - Products - Contact Us" links when viewing from IE and Mozilla Firefox. Basically, I would like the text to be centered vertically in the bar... but CSS by default puts it on top. I tried adding padding,which helped in IE... but Firefox still shows the links a bit higher than they should be.,... any ideas how to fix this? Also, a different problem in case anyone knows how to fix it... you can see a small brown bar on the top bar. It is 50px in height. But I have no idea how to make its width as wide as the remainder of the page (this would change with different resolutions). The main content of the page is 760px wide. I would like a brown box next to that, which is 50px in height and the remainder width. Any ideas? "width: auto;" doesn't work unfortunately [ this is a follow up to my previous thread http://forums.devshed.com/showthread.php?t=270438 Any help would be greatly appreciated. Thanks very much. Hello all, Slight issue with everyone's favorite web browser - my tables keep floating to the bottom of the page. Any ideas what I'm doing wrong? Here's a simple example: Code: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <style type="text/css"> html{ height: 100%; } BODY{ font: 0.8em "lucida", "verdana", "arial", "tahoma", "verdana", sans-serif; font-size: 76%; width:100%; background: #fff; margin: 0; padding: 0; height: 100%; } img{border-style: none;} a:link, a:visited, a:active{ color: #07b; text-decoration: none; border-bottom: 1px dotted #036;} a:hover{ border-bottom: 1px solid #69c; background: #E5F2FF; } #wrap{ background:url( /img/bg200.gif ) top left repeat-y; min-height: 100%; margin: auto; position: relative; } * html #wrap{ height: 100% } #clearfooter{ clear:both; height: 40px; overflow: hidden; } #logo{ text-align:center; height:7em; margin:0; padding-bottom: 2em; font-family: "lucida", "verdana", sans-serif; font-weight: bold; } #logo h1{ font-size: 4em; color:#07b; margin: 0; padding:0; } #logo h2{ font-size: 3em; margin: 0; padding: 0; } #logoimg{ float: left; margin: 1em; } #footer{ position: absolute; bottom: 0; font-size: xx-small; height:40px; border-top: 1px dotted #000; width: 100%; text-align: center; } #nav{ float: left; width: 200px; font-weight: bold; } #nav ul { padding: 0.2em; margin: 1em; list-style-type: none; background: #fff; border: 1px solid #07b; border-left: 1em solid #07b; } #nav a{ border: 0; display: block; } #nav a:hover{ background: #E5F2FF; border: 0; color: #036; } #nav ul li{ display:block; color: #000; text-decoration: none; border-bottom: 1px dotted #69c; } #nav ul li:hover{ background:#E5F2FF; display:block; border-bottom: 1px solid #69c;} #logos{ padding: 0; align: center; text-align: center; } #logos a{ border: 0; padding: 0.3em 0 1em 0; } #logos a:hover{ background: #fff; border: 0; } #search { padding: 0.2em; margin: 1em; } #content{ position: relative; margin-left: 200px; padding: 0 1em 1em 1em; } /* Tables */ .data { } .data table { border: solid #f0f0f0 1px; width: 100%; } .data th { border: solid #f0f0f0 1px; background-color: #f0f8ff; font-weight: bold;} .data tr {} .data td { border: solid #f0f0f0 1px;} .highlight{ background: yellow; } </style> <title>title</title> </head> <body> <div id="wrap"> <!-- LPAN --> <div id="lpan"> ( some banner ) </div> <!-- LOGO --> <div id="logo"> <h1>Page</h1> <h2>Title</h2> </div> <!-- Navigation --> <div id="nav"> <ul> <li><a href="/link/" title="Home">Home</a></li> <li><a href="/link/a.php" title="a">a</a></li> <li><a href="/link/b.php" title="b">b</a></li> </ul> <ul> <li><a href="/bork/" title="bork">bork</a></li> <li><a href="/bork/bork/" title="bork bork">bork bork</a></li> <li><a href="/bork/bork/bork/" title="bork bork bork">bork bork bork!</a></li> </ul> <div id="search"> <form action="search.php" method="get" accept-charset="UTF-8" > <input type="text" name="query" value="" id="query" size="15" maxlength="60"/> <input type="hidden" name="type" value="both" /> <input type="submit" value="search" /> </form> </div> <!-- AFFILIATE LOGOS --> <div id="logos"> <p> <a href="http://example.com" title="Example.com"> <img alt="example" src="/img/example.gif" height="50" width="179" /></a> </p> </div> </div> <!-- Begin Content --> <div id="content"> <h1> Title </h1> <div class="data"> <table> <tr> <th> col 1 </th> <th> col 2 </th> <th> col 3 </th> </tr> <tr> <td> A </td> <td> B </td> <td> C </td> </tr> <tr> <td> D </td> <td> E </td> <td> F </td> </tr> </table> </div> </div> <!-- Begin Footers --> <div id="clearfooter"></div> <div id="footer"> Feet </div> </div><!-- end wrap --> </body> </html> --Simon Hi again could someone help me figure out why my left and right box's on thid design are not inline with the content (middle) box thanks see attached pic to see what i mean. Code: CSS CODE body { background:#ffffff; color:#000000; font:76% Verdana,Tahoma,Arial,sans-serif; margin:0; padding:0; text-align:center; } /*** Main container ***/ #container { background:#EAEAEA url() repeat-x; color:#000000; width:90%; margin:5px; min-width:770px; padding:0; } /*** Content ***/ #content { background-color:#EEEEEE; border:1px solid #DEDEDE; color:#000000; padding:15px 20px 5px; height:500px; margin:5px; } /*** Main Banner ***/ #Banner { background-color:#EEEEEE; height:55px; border:1px solid #DEDEDE; padding:15px 20px 5px; margin:5px; } /*** Left Side Navigation ***/ #SideNav { width:15%; float:left; background-color:#EEEEEE; border:1px solid #DEDEDE; color:#000000; min-width:200px; padding:15px 20px 5px; margin:3px; } /*** Right Side content ***/ #RightCon { float:right; width:15%; background-color:#EEEEEE; border:1px solid #DEDEDE; color:#000000; padding:15px 20px 5px; min-width:200px; margin:3px; } Thanks I'm trying to put a line of text on the bottom of a box. Code: <div style="width:500px;height:500px;background:black;vertical-align:bottom;"> This is a black box </div> <div style="width:500px;height:500px;background:black;vertical-align:baseline;"> This is a black box </div> What the above code displays: Code: ------------------------- | This is a black box | | | | | | | | | | | | | | | ------------------------- What I want it to display: Code: ------------------------- | | | | | | | | | | | | | | | This is a black box | ------------------------- Is not working for me, or I'm not using it right. Here is my problem: http://www.kingtoad.net/development/kingtoad.net/ I want the "navigation" to align to the top even with the "content". I can't seem to get it up there though. Any suggestions would be nice. Hello to all of you, I am doing my first steps in respect to CSS programming and wonder if I can get some hint here. I have created a table, with two different line colors, and a changing line background color with hover. Basically everything works as expected - just the vertical-align command does not respond at all. Am I doing something wrong? What could be the reason, and how can I continue investigating? I am using the CSS stylesheet, in connection with a Joomla 1.5 CMS. Please see the code below: Code: table.general { text-align: left; vertical-align: top; width: 100%; border-collapse: collapse; } table.general th { text-align: center; font-size: 15px; color: white; font-style:bold; height: 30px; background-color:#95B3D7; border: 3px solid #FFFFFF; } table.general tr.row1 { background-color: #f1f1f1; } table.general tr.row2 { background-color: #e0e0e0; } table.general tr.row1:hover { background-color: #CCCCCC; } table.general tr.row2:hover { background-color: #CCCCCC; } table.general td { border: 3px solid #FFFFFF; padding: 4px; } The classes are being used in the following form: Code: <table style="width: 320px;" class="general"> <col span="4" width="80"></col> <tbody> <tr> <th>head A</th> <th>head B</th> <th>head C</th> <th>Alface</th> </tr> <tr class="row1"> <td>Topic A</td> <td>65</td> <td>215</td> <td>35</td> </tr> <tr class="row2"> <td>Topic B</td> <td>2</td> <td>2,3</td> <td>1,2</td> </tr> <tr class="row1"> <td>Topic C</td> <td>68</td> <td>55</td> <td>13</td> </tr> <tr class="row2"> <td>Topic D</td> <td>44</td> <td>50</td> <td>33</td> </tr> <tr class="row1"> <td>etc.</td> <td>494</td> <td>611</td> <td>238</td> </tr> </tbody> </table> Thank you in advance for your kindness! Hi, I am trying to use the vertical-align property to make some text appear in the middle of a div (set float:left). However it is not working. Following is some sample code I have done for testing: Code: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <title>ccc</title> <style> div{ width:16.7em; height:6.8em; border:1px solid black; vertical-align:middle; float:left; } </style> </head> <body> <div>hello</div> </body> </html> Is this possible? Thanks and Regards, Sim085 Hi I want to know if it is possible to vertical align the text in these div tags and how it's done. Code: <!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" media="all"> #1 {width:15%} #2 {width:20%} #3 {width:25%} #4 {width:20%} #5 {width:20%} #1,#2,#3,#4,#5 { float:left; overflow:hidden; display:inline-block; height:128px; text-align:center; } </style> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Untitled Document</title> </head> <body> <div id="1"><a href="#"><img name="" src="" width="100" height="125" alt="" /></a></div> <div id="2"><a href="#">fffffffffffggfgf fg gd</a></div> <div id="3"><a href="#"> dfg dfg dg d</a></div> <div id="4"><a href="#"> dgd gd d</a></div> <div id="5"><a href="#"> gdf gdg ddg</a></div> </body> </html> Greets, dabomb_gent for example if there is a container div which holds an inner div, if i want the content of the inner div to appear exactly at the bottom edge of the inner div i have used the following code, #outer{ position: relative; float: left; width: 900px; height: 200px; } #outer .inner{ position: relative; float: left; width: 500px; height: 200px; vertical-align: bottom; } however the content of the inner div is starting at its default location which is top left of the inner div instead of using margin-top or padding-top, or positioning methods for the inner div to position the content at the bottom edge can the vertical-align: bottom; be used as this will be very accurate placed at the bottom edge even if the content increases the content will always appear at the bottom edge, unlike other methods where the margin-top, padding-top, and positioning, these values will have to be changed whenever content increases or decreases. please advice. thanks. How can i make #mydiv DIV (the main layout div), be vertically aligned to middle? http://www.dinal.ru/new/max/index2.htm I've read a lot of docs about vertical alignment in internet, but I haven't found a good cross-browser solution, which doesnt't destroy my current layout. Thank you in advance Artashes What I'm trying to do... I have some navigation links, a few pictures, and someone's name on the left hand side of the page. I want everything except for the name to be at the top.... the name is to be at the bottom. Is there a specific way to accomplish this? The content area will generally extend as high as 600 or so px, so would like the name to appear at the very bottom lined up with the content box. Thanks. Not sure exactly what code you need to see, but here's the left hand column: CSS: Code: body {width:770px; height:100%; } .nav_links {vertical-align:top; width:150px; } .nav_links a{display:block; border-top:1px solid black; text-decoration:none;} HTML: Code: <!-- Left Nav Menu --> <div class="nav_links"> Link 1 Link 2 Link 3 Link 4 Link 5 </div> <!-- End Left Nav Menu --> <!-- Misc. Pictures (Left Column)--> <div> <div style="float:right;"> <img src="images/left_pic_1.jpg" alt="Pic1" style="width:50px; margin-bottom:10px;" /><br /> <img src="images/left_pic_2.jpg" alt="Pic2" style="width:50px;" /> </div> </div> <div style="clear:both;"> <div style="float:right;"> <img src="images/left_pic_3.jpg" alt="Pic3" style=" width:50px; margin-bottom:10px;" /><br /> <img src="images/left_pic_4.jpg" alt="Pic4" style="width:50px;" /> </div> </div> <!-- End Misc. Pictures (Left Column) --> <!-- Name --> <div class="name" style="vertical-align:bottom;"> First M. Last </div> <!-- End Name --> ok so i have a photo gallery and the images vary in height. and so instead of having them defaulted to top aligned, i'm try to figure out how to get them to bottom align. anyone have any ideas or articles i can check out? thx I have three divs. The main div contains the background color and border. The second div has text, and The third has an img. What I want is for the image to sit at the bottom of the main div and stay there when the font-size is increased. I want the text to stick to the top of the main div. Can someone please help me. I have attached the code below it is all messed up cause I have been trying everything I can think of. ".abouttestcontainer { width : 100%; float : left; border-top : 1px solid #cccccc; border-bottom : 1px solid #cccccc; border-left : 1px solid #cccccc; color : #001F56; background-color : #DDEADE; border : 1px solid black; } .abouttest { float : left; width : 450px; height : 100%; padding : 10px 50px 0px 10px; text-align : left; font-size : 12px; border : 1px solid black; margin-right : 10px; } .aboutimage { border : 1px solid black; position : relative; display : inline; vertical-align : bottom; }" Hi there, I am having trouble aligning 2 divs to the bottom. I have a left and right side div for a header area, however the right side is taller than the left, so it is leaving a gap at the bottom of both sides. This is my CSS: PHP Code: #nav_wrapper{ } #nav_left{ width: 620px; padding-left: 20px; float:left; } #nav_right{ float:right; text-align: right; padding-right: 20px; } #member_login{ width: 180px; padding: 10px; font-family:Verdana, Arial, Helvetica, sans-serif; color: #373737; font-size: 11px; border-top: 1px solid #ffffff; border-left: 1px solid #ffffff; border-right: 1px solid #ffffff; background-color: #f6f6f6; line-height: 200%; } #member_login a{ font-family:Verdana, Arial, Helvetica, sans-serif; color: #373737; font-size: 11px; font-weight:bold; text-decoration:underline; } and this is my HTML: PHP Code: <div id="nav_wrapper"> <div id="nav_left"> left content <div id="nav_right"> <div id="member_login"> right content </div> </div> </div> Any ideas? Hello all, Is there a good way to have the text in a select box be vertically aligned? I have the following: Code: <select style="height: 12em; width: 12em;"> <option value="a">A</option> <option value="b">B</option> </select> Which puts the text in the upper left but I would like it to be in the dead center. I tried vertical-align but it did not work. How exactly can i vertically align text in css, i can't seem to find an easy way to do it, i basically want my text to be in the middle of a divs height, so much easier in tables heh. Tried padding but that then adds to the height, making it pointless for this use i really need to vertical align a div to always be at the bottom of a main div... Code: <div class="container"> <div class="menu"></div> </div> i want .menu to always be at the bottom of .container .... no matter the height of the container div |