CSS - Maximum Height
Dear CSS gurus,
I have a problem that I have been wondering about for quite some time. I'm sure you have heard this one before, of which I apologise. The only thing I can find when searching for a solution to this is some JavaScript code. Ideally I would like to stay clear of JavaScript for this problem, as it would require script for every element within the site (a lot) which is a maintenance nightmare. Basically from the short and sweet example below, I would like div with id "test2" to expand to fill the height of the containing div, i.e. 100% - 25px. I have defined "test1" with a fixed pixel height and wish it to remain like that but have "test2" expand fully and resize whenever the browser window resizes. PHP Code: <html> <head> <style type="text/css"> .test_container { width: 100%; height: 50%; border: 1px solid red; } .test1 { width: 100%; height: 25px; background-color: grey; } .test2 { width: 100%; height: 100%; background-color: lightgrey; } </style> </head> <body> <div class="test_container"> <div class="test1"> test1 </div> <div class="test2"> test2 </div> </div> </body> </html> Any help would be much appreciated. Thanks. Similar TutorialsHello, not sure I know how to explain this. I have a page that I want to divide in two parts. To do so I am using floats. The problem is that the content in one div is not the same as the content in the other div and therefore the height of the two floated div is different from one another. However, I want that the div's have a border that seperates them and I would like this border to be from top to bottom of the containing div regardless of which of the two floated div is the highest. I could do this with javascript but I would like to know if there is some pure html/css option. Here is my example; Code: <html> <head> <style> .main { margin: 0px auto; width: 800px; border: 2px solid red; } .wrap:after{ content: "."; display: block; position:relative; height: 0; clear: both; visibility: hidden; } .wrap{ display: inline-block; } /* Hides from IE-mac \*/ * html .wrap{height: 1%;} div.wrap{display: block;} /* End hide from IE-mac */ .left { float: left; width: 100px; } .right { float: left; width: 680px; border: 10px solid blue; } </style> </head> <body> <div class="main"> <div class="wrap"> <div class="left">My left div has more.<br/>more..<br /><br />more...<br /><br /><br />lines then the right one</div> <div class="right">My Right div has only one line but need border till down there ...</div> </div> </div> </body> </html> As you can see in the example the border of the right div does not go down till the bottom border of the main div. Is it possible to set a maximum width that a fluid design can expand to? I have a regisration form that needs to work from 640x480 upwards but I don't want the form to infintely get wider and wider. I would like it to cap out at 1280x1024 resolution. thanks. I'm creating a blog for someone, and my issue resides in <h2>. Using Wordpress, <h2> is typically the blog entry title. As you know, blog entry titles vary, because people put in different titles for different entries. I have <h2> formatted to my friend's likings, but an issue has arisen. If a blog entry title is particularly longer than the average, <h2> breaks into another line of text. This results in corrupting the layout entirely. So my question: How do I go about formatting <h2> so that the blog entry title text fills up the entire width of <h2> without breaking into a new line? Clarification (if needed): I want the font size to be dependent upon the physical length of text in the blog title Here's my code for <h2>. It resides in two containers of sorts. Code: h2 { float:left; font-family:"Franklin Gothic Medium"; font-size:55px;letter-spacing:-2px; width:728px; padding: 0; margin: 0; } This is my first post/topic. Be gentle! Thanks. Hi all, I am trying to automate everything on my test website and I have one more angle to cover. In effect, I want to adjust the line-height property (which I can do) based on the number of files within a specific folder (PHP and already done). The more files in the folder, the lower the line-height value must be. This is to ensure if I copy additional files into the folder, then the navigation menu (which is PHP reading files in this particular folder) will alter the CSS line-height property accordingly to ensure it can never exceed a certain height. Sounds wierd? go to www.re3.org.uk (next to the RE3 image, I have a list of hyperlinks which are obtained from files within the folder) My problem, when adjusting the CSS property (which is set as cm in *.css file) in javascript, it doesn't correspond correctly, the line-height property in javascript doesn't appear to be work in cm but some other measurement. Does anyone know how to change what unit of measurement Javascript works in? Or does anyone know what unit of measurement javascript uses when adjusting line-height / line-width values? I want to create a mini-algorithm that works out the appropriate line-height based on the image height (got that already) and the number of files in the folder (got that too) so the menu automatically adjusts to fit. Whew! I've never done much CSS work, but I know this has to be an easy fix. Each DIV appears to be 10px higher when viewed in IE. I want them to be 8px high and they end up being 18px high. In Firefox, Netscape, and Opera it works fine. Anyone mind correcting this imbarrassing little problem? 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" > <head> <title>IE 10px Padding Problem</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style type="text/css"> body { margin:0px; } #container { position:relative; margin:auto; width:730px; } #header { height:110px; } .textualtop { border:1px solid #000000; height:8px; } .textualbottom { border:1px solid #000000; height:8px; } </style> </head> <body> <div id="container"> <div id="header"></div> <div class="textualtop"></div> <div class="textualbottom"></div> <div class="textualtop"></div> <div class="textualbottom"></div> <p>Notice how in IE6 each DIV is 10px higher then in FF. Why is it doing this?</p> </div> </body> </html> Hello everybody! I have been having a big problem with my webpage for a long time now and hope I can find an answer to my problem with your help. I want a div that contains the content of my pages (which varies in length depending on the individual page) to stretch the length of my page, but it only stretches the length of the window. Here's the HTML and CSS: HTML (I only included the very basic structure): <html> <body> <div class="container"> <div id="content"> <div id="..."></div> <div id="..."></div> <div id="..."></div> <div id="..."></div> </div> </div> </body> </html>` CSS: html, body { height: 100%; font-family: Arial; font-size: 10px; color: #000000; background: #FFF url(../../images/body.png) no-repeat center 40px; margin: 0; position: relative;} .container { height: 100%; width: 960px; margin-right: auto; margin-left: auto; position: relative;} #content { width: 939px; min-height: 100%; position: relative; top: 210px; left: 6px; box-shadow: 0px 0px 8px #666; -moz-box-shadow: 0px 0px 8px #666; -webkit-box-shadow: 0px 0px 8px #666; background-color: #FFF;} I tried to set the content div to overflow: auto, but that includes a scroll bar for the content div that I do not want. It does, however, create the desired effect of the shadow and background of the #content div all the way to the end of the page. Am I missing anything? I thought min-height would work, but it doesn't! It only stretches the content div to page height and everything else is overflow, but without the content div's background color and shadow. Does anybody maybe see where the problem lies? Thank you so much in advance for your help. Hello Just recently I had an idea for a page I wanted to make, the design is basically a 3-column layout with no traditional header or footer, the height of all three columns should run the length of the window/page height the left and rightmost column would have a fixed width or a width in em, the center column width should fill the space in between. If the content is short all columns should extend to the height of the page window, but if the content in any of the columns is longer than the window height they should all extend to reach the bottom of the page and accommodate the content length In my first attempt things didn't go so well, results varied wildly across browsers so I decided to start from scratch bit by bit Bellow is the point at which I reach consistent but undesired behaviour, I have validated and tested the code in Firefox 3/Pale Moon, Internet Explorer 8, Chromium 9, and Opera 11 I would like the end result to work in the above browsers as well as IE7 if possible I should point out now that im not interested in using faux-columns, the layout should not require images, I also wish to have absolute-positioned elements in the columns some time later 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"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Three Columns</title> <style type="text/css"> *, html, body { margin: 0; padding: 0; font-size: 100%; } html, body { width: 100%; height: 100%; } #maincontainer { position: relative; height: 100%; background: #eee; } #left { position: absolute; top: 0px; left: 0px; width: 200px; background: #fbb; height: 100%; } #mid { position: relative; margin: 0 200px 0 200px; background: #efe; height: 100%; } #right { position: absolute; top: 0px; right: 0px; width: 200px; background: #bbf; height: 100%; } </style> </head> <body> <div id="maincontainer"> <div id="left"> left start<br /> left<br /> left<br /> left<br /> left<br /> left<br /> left<br /> left<br /> left<br /> left<br /> left<br /> left<br /> left<br /> left<br /> left end<br /> </div> <div id="mid"> mid start<br /> mid<br /> mid<br /> mid<br /> mid<br /> mid<br /> mid end<br /> </div> <div id="right"> right start<br /> right<br /> right<br /> right<br /> right<br /> right<br /> right<br /> right<br /> right<br /> right<br /> right<br /> right<br /> right<br /> right<br /> right<br /> right<br /> right<br /> right<br /> right<br /> right<br /> right<br /> right<br /> right end<br /> </div> </div> </body> </html> In the above example it works as long as the content within the columns is shorter than the window height, but if you re-size the window so that the text in the right or left column goes beyond the page, and then scroll to the bottom, the columns do not extend to the bottom of the page so there is a large gap where the content overflows beyond the column What I would like to do from this point is make the columns extend to the bottom of the page when this happens, but I'm not sure how best to proceed I also have a version of the above code which uses floated left and right columns instead of absolute positioned ones, would it be better to work from that? or does it not really matter Thanks in advance It seem that everytime I added the image tag, the div'x area get bigger in IE but not in Mozilla/Firefox browser. So, I thought by added the "margin-bottom:-360px;" to the div would fix it but it had an opposite effect. Meaning it worked in IE but Mozilla show a vertical scrollbar. So, does anyone know how can I make the <img> overlap one another without being stacked on one after another in height for IE if I take out the "margin-bottom: -360px;"? Thanks... Code: div.divBox1 { width: 286px; height: 359px; float: left; } div.divClearFloat { clear: both; height: 0px; /* For IE Stupidity (it added some spaces after clearing the float) */ font-size: 1pt; /* For IE Stupidity (minimum height only work with current font-size somewhere) */ } div.divDottedLineAdvertisementSeperator1 { width: 575px; height: 3px; background-color: #ff0000; font-size: 1pt; /* For IE Stupidity (minimum height only work with current font-size somewhere) */ } Code: <div class="divBox1"> <div style="margin-bottom:-360px;"> <img src="images/doctor.jpg" style="position:relative;top:0px;left:0px;z-index:2;"> <img src="images/we_help.jpg" style="position:relative;top:-360px;left:0px;z-index:1;"> </div> </div> <div class="divClearFloat"></div> <div class="divDottedLineAdvertisementSeperator1"></div> If you look at the bottom of the page at www.res-technologies_DOT_com/index.php?jos_change_template=restech2 in both IE and FF, you will see that it looks fine in IE, but in FF the page length is extended by exactly the height of the header image at the top of the page. Trying to figure out what's causing this is driving me nuts! Can anyone help? thx dh I am having a problem trying to get one column match the height of another. Within a large DIV box, I created two columns separated by about 20 px. I floated one to the left, then pushed one over to the right. Both boxes will expand depending on the amount of content, but I would like them to match the same height. The boxes will be used throughout the entire website, so it would not make sense to create a background image to try and trick it into being the same height.. or actually specifying the height. Is there any way to tell the left box to be the same height as the right box?? I tried to link to my site but it won't let a new member link to a website. My web page has a display bug in IE 5+ on Windows. Specifically, I have a DIV within which I wish to place two images. The two images are the same height and width, and I want to layer them (the top one is a PNG with transparency, but I have already solved that problem, this is a positioning problem) exactly on top of each other. I have done this by positioning them relatively within the DIV. The first image is top:0;left:0 and the second is top:-150;left:0 (the images are 150 px tall). They layer fine, but the DIV is twice the height (as if the second image were still following the first, making he DIV 300 px tall). I have tried many things and am stumped. Here is the site: URL Here is the relevant CSS: Code: #bannerPhoto { border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #000000; height: 150px; width: 750px; } #bannerPic { position: relative; z-index: 1; left: 0px; top: 0px; } #bannerText { position: relative; z-index: 2; left: 0px; top: -150px; } And the HTML: Code: <div id="bannerPhoto"> <div id="bannerPic"><img src="../images/bannerPhotos/image.jpg" height="150" width="750" /></div> <div id="bannerText"><img src="../images/text-cover.png" height="150" width="750" /></div> </div> Anyone? Thanks, Denver. i came across a solution for this a while ago and can't repeat the result i have 3 columns, div format with a left left right float. 1 2 3 #2 contains content that varies with the page, #1 and #3 contain background elements. i need 1 and 3 to extend the full height of 2, even tho the actual content is much less. thanks for the help! Hi Guys, Consider the following box: PHP Code: <div style=border: 1mm black Solid; width: 148mm; height: 98mm;'> </div> 148mm + 1mm + 1mm = width of 150mm 98mm + 1mm + 1mm = width of 100mm Now why does neither firefox or ie manage to get it? Firefox is about 2mm out and ie is about 3mm out? Any ideas or is it some quirk? Charlie does the height property not work for <div> tags in IE? I have Code: div.TestDiv { background-color: #CCCCCC; height: 100% } and Code: <div class="TestDiv">Test</div> but it only expands to the bottom of the word 'Test'. How do I get around this? hi, i created a div and made height attribute to auto and then inside that div i created another 2 divs and changed their height to 100px. parent div is now changing it's height. but when i make the child div to float the parent div doesn't change its height. can some one give any solution for this.it'll be a great help.thank you. bellow is the code <html> <head> <style type="text/css"> .wrapper{ width:70%; height:auto; margin:0 auto; text-align: left; border:thin; border-color:black; border-style:dashed; } .image{ width:100%; text-align:center; } .image img{ width:65%; } .thumbs{ width:100%; height:auto; border:thin; border-color:black; border-style:dashed; } .thumbs div{ width:10%; text-align:center; border:thin; border-color:black; border-style:dashed; padding:1%; margin:1% 0 0 1%; float:left; //when i remove this it changes the height cursorointer; } .thumbs div img{ width:100%; } body{ text-align: center; } </style> </head> <body> <div class="wrapper"> <div class="image"> <img src="images/1.jpg" alt=""> </div> <div class="thumbs" id="thumbs"> <div> <img src="images/1.jpg" alt=""> </div> </div> </div> </body> </html> I am developing a site with shadows on either side of the main content, I have gotten it working in all browsers (Firefox, Chrome, Opera, Konqueror, Safari) except for IE7. I have a table with three cells, left cell with a repeated shadow and right cell with a repeated shadow and the centre cell for the main content. The height is set as 100% as is the width. In IE7 when I resize the page (with no content) I get a horizontal and vertical scrollbar that only disappears if I resize the browser window to a bigger size. It also fixed itself if you reload the page. Does anyone know how to fix this bug? I cannot progress without a fix I am using an image for my header. It is contained inside a header div defined as such: Quote: div#header { margin: 0px; /* padding-bottom: 10px; */ background-color: #000000; border-bottom: 1px solid white; } So whats with the black line below the image? Ive also specified the image to have a class defined as such: Quote: .img { border: 0px none; } http://www.nevertap.com/event.php This is a strange quirk, ive tried adjusting the height element but with no luck. I was under the impression height reacted like an auto property, only expanding to include the objects inside them. So I'm in the process of converting an old Frontpage-developed layout into a nice XHTML/PHP website. The problem I'm running into is this: The original designer found it necessary to use 100% height frames to achieve the layout they were after. As I am not looking to use frames any longer, I am in a bit of a pickle. I've read some articles that suggest setting the height property of the body element to 100%, then all other elements that I wish to fill the screen to the same height of 100%. Unfortunately, this isn't working out for me. Are there any known methods that work across browsers? I want to stay away from JavaScript as much as possible, so please keep that in mind. Thanks in advance! I'm suffering with one of my new projects, in IE it is quit good but in FF on some screens smaller then 19" i have a problem with the 100% height... the website is visible on: http://dudzele.no-ip.info:8080/netdistri/ for thos who don't get the code by url: css: Code: /* commented backslash hack v2 \*/ html, body{height:100%;} /* end hack */ body { font-family: Verdana, Arial; font-size: 12px; background-image: url('images/bg4.gif'); background-repeat: repeat; background-color: #999999; margin: 0px; margin-top: 5px; margin-bottom: 5px; padding: 0px; height: 100%; min-height: 100%; font-family: verdana, sans-serif; text-align: center; } #afbeelding { text-align: center; } #pagebox { min-height: 100%; height: 100%; width: 760px; background-color: #FFFFFF; margin-left:auto; margin-right:auto; border: 1px solid #000000; } #pageheader { width: 760px; height: 106px; background-image: url('images/headnd.gif'); background-color: #465A73; font-size: 10px; text-align: left; border-bottom: 1px solid #000000; margin: 0px; vertical-align: middle; font-size: 16px; color: #FFFFFF; } .login { margin-top: 45px; margin-left: 20px; font-size: 10px; } input { font-size: 9px; width: 100px; height: 15px; background-color: #F0F0F0; border: 1px solid #000000; } p { display: table; margin-top: 5px; margin-right: 10px; } h1 { font-size: 16px; text-decoration: underline; text-align: left; color: #A91008; padding: 0px; margin: 0px; margin-top: 10px; margin-bottom: 5px; width: 155px; } h2 { margin: 5px; text-align: left; color: #3C86AB; } #content { text-align: left; margin-top: 5px; margin-left: 170px; } #posmenu { float: left; height: 100%; min-height: 100%; } ul#menu { list-style: none; width: 150px; margin: 0px; margin-left: 5px; padding: 0px; } ul#menu li { margin-top: 0px; } ul#menu li a { color: #000000; text-align: left; text-decoration: none; font-weight: bold; padding-left: 5px; font-size: 12px; display: block; height: 100%; width: 100%; } ul#menu li a:hover { text-decoration: underline; border-top: 0px; display: block; } .submenu { margin-left: 15px; border: 0px; } html: Code: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html lang="nl"> <head> <title>Netdistri Welkom</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name="resource-type" content="document" /> <meta http-equiv="Window-target" content="_top" /> <meta name="robots" content="index, follow" /> <meta name="description" content="Netdistri your network distibution partner" /> <meta name="keywords" content="network, dedicated, colocation, interxion" /> <meta name="rating" content="general" /> <meta name="distribution" content="global" /> <meta name="revisit-after" content="7 days" /> <meta name="author" content="Dutchzone" /> <meta name="generator" content="Dev-PHP 2.0.12" /> <meta http-equiv="Content-Type" content="text/html; charset=windows-1250" /> <meta http-equiv="Content-Language" content="nl-be" /> <meta name="MSSmartTagsPreventParsing" content="TRUE" /> <link href="netdistri.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="pagebox"> <div id="pageheader"> <table class="login"> <tr><td>login</td><td><input type="text" name="login"></td></tr> <tr><td>password</td><td><input type="text" name="password"></td></tr> </table> </div> <div id="posmenu"> <ul id="menu"> <h1>General</h1> <li><a href="?page=about" class="menu">About us</a></li> <li><a href="?page=news" class="menu">News</a></li> <li><a href="?page=press" class="menu">Press</a></li> <li><a href="?page=jobs" class="menu">Jobs</a></li> <li><a href="?page=contact" class="menu">Contact us</a></li> <li><a href="?page=reseller" class="menu">Resellers</a></li> <li><a href="?page=partners" class="menu">Partner Links</a></li> </ul> <ul id="menu"> <h1>Products</h1> <li><a href="?page=hardware" class="menu">Hardware</a></li> <li><a href="?page=software" class="menu">Software</a></li> <li><a href="?page=services" class="menu">Services</a></li> </ul> </div><div id="content"> <h2>Your IT-Solutions!!</h2> <p> Netdistri is a belgian IT-company specialised in networksolutions.<br /> The company stands for quality and that results in many satisfied customers! </p> <h2>Why and what?</h2> <p> We have choosen to specialise us in network-applications and hardware because there is not one company in Europe who take care to know each product they sell. By us you get support for each product you ever bought at our company! So for little problems or not hardware related, we will help you to get a fast solution, so you see fast and accurate is our vision! </p> <h2>Become a partner!!</h2> <p> When you become a partner (reseller) with Netdistri you will be sure you get the latest information about new products, you will be sure we will test those for you and give us our opinion. Even when you are a manufacturer we can help you, by us you are sure your products will reach the right customers.</p> </div> <div id="afbeelding"><img src="images/handshake.jpg" border="0" align="center" alt="partnership" /></div> </div> The strange effect of an image that is in the contentbox or out the content box... Someone any solution? |