CSS - Positioning Schemes
Positioning schemes:
Static vs Floating vs Absolute vs Relative: Right now I want to start using Absolute, I have been using Floats but Absolute seems to be so much more precise and predictable. ( Is my knewbdom showing? ) Which do you use ? Why do you use it? Are there any draw backs? Why don't you use the others? Which is most popular? Which is used most in a work setting? Thank you so much Similar TutorialsI'm trying to set up multiple link style schemes , but it works in IE, not in Firefox? In Firefox in a.link does same as a.intro:link. What do I do, what's wrong? a:link { color: #006600; text-decoration: underline; font-weight: bold; } a:visited { color: #006600; text-decoration: underline; font-weight: bold; } a:hover { color: #FFFFFF; background-color: #66CC00; } a.intro:link { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; color: #FFFFFF; background-color: #000000; } a.intro:visited { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; color: #FFFFFF; background-color: #000000; } a.intro:hover { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; color: #FFFFFF; background-color: #8DCB2E; } I have problem with footer DIV in this layout (the order of DIV's in code after <body> should be - content, left, right, right2, header, footer - positioned centraly with fixed values): It needs to be sticked to fit after content of 4 column DIV's like it is in example. http://www.split.info/dev/less-content/ http://www.split.info/dev/more-content/ Code: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Title of website</title> <style type="text/css"> <!-- body {margin: 0px 0px 0px 0px; background-image:url(images/bg.jpg); background-position:center; background-repeat:repeat-y;} #wrapper {width: 1000px; margin: 0 auto; text-align: left; position: relative;} #contentPane {width: 468px; float: left; position: absolute; margin-left: 3px; padding: 0px 0px 0px 0px; background-color:#0099FF; left: 126px; top: 150px;} #leftPane {width: 125px; float: left; left: 0px; position: absolute; background-color: #99FFFF; top: 150px;} #rightPane {width: 173px; float: right; right: 226px; background-color:#999966; position: absolute; top: 150px;} #rightPane2 {width: 220px; float: right; right: 0px; background-color:#99FF00; top: 150px; position: absolute;} #headwide {background-image: url(images/head_bg.jpg); background-position: center; background-repeat: no-repeat; width: 100%; height: 142px; position: absolute; top: 0px;} #header {margin: 0pt auto; width: 1000px; background-color:#CC6600; height: 142px; } #footer {position: absolute; width: 100%; top: auto; bottom: 0px; background-color: #CCFFCC; height: 50px;} --> </style> </head> <body> <div id="wrapper"> <div id="contentPane">Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> Content area<br> </div> <div id="leftPane">Left Pane area<br> Left Pane area<br> Left Pane area<br> Left Pane area<br> Left Pane area<br> Left Pane area<br> Left Pane area<br> Left Pane area<br> Left Pane area<br> </div> <div id="rightPane">Right Pane area<br> Right Pane area<br> Right Pane area<br> Right Pane area<br> Right Pane area<br> Right Pane area<br> Right Pane area<br> Right Pane area<br> Right Pane area<br> </div> <div id="rightPane2">Right Pane 2 area<br> Right Pane 2 area<br> Right Pane 2 area<br> Right Pane 2 area<br> Right Pane 2 area<br> Right Pane 2 area<br> Right Pane 2 area<br> Right Pane 2 area<br> </div> </div> <div id="headwide"> <div id="header">Header area</div> </div> <div id="footer"><strong>Content from above 4 column div's need to push footer DIV below (after them)! </strong>Footer area that is on bottom of div with biggest height (content, left, right or right 2 pane)... foooter follow right after end of content from those div's (regular behaviour of next table row below any of those 4 columns). Current state like it is in this document happens that if you add more data f.i. in content area (outside one screen), it will go trough footer... So footer can be either moved in code after rightpane2 div after end of wrapper. Pls help. Thx!</div> </body> </html> Content from above 4 column div's need to push footer DIV below (after them)! Foooter need to follow right after end of content from those div's (regular behaviour of next table row below any of those 4 columns). Current issue like it is in this layout happens that if you add more data f.i. in content area (outside one screen), it will go trough footer... So in your resolution footer can be also moved in code after rightpane2 DIV, after end of wrapper. Pls help. Thx! Echo Hi guys, I'm pretty new to web design, so please be gentle. I have an issue with CSS positioning that I'm trying to figure out. After research, I figured out how to align a div to the centre using an external stylesheet. However, I want this div to be positioned at the very top of the page. Currently, it sits approx 100px from the top and I can't figure out how to position it to 0px. Here's my code; body { text-align: center; margin: 5em 0 0 0; vertical-align: middle; } #content { width: 760px; text-align: left; margin: 0 auto; background-color: #000000; top: 0px; } Can anyone help me? Thanks Luke I am getting slightly different displays with using div sections on my layout. I am using relative positioning mostly with a webpage with a bar across the top, bar down left hand side . In the content area I have another 3 sections. In IE it looks fine but in FF there is spaces left at very top and between another section in main area. Basically if i use absolute positioning it works for both but not relative positioning of sections in FF. Is there an issue with relative positioning in ff? I can give my code but that is about 100 lines. Hi all, Im doing a bit of work, for which the URL can be found at: (URL address blocked: See forum rules)~gj311/webeng and the css is at (URL address blocked: See forum rules)~gj311/webeng/webeng.css Ignore the lack of content for now if you would (URL address blocked: See forum rules)=newthread&f=116# Smilie I am trying to make the "top" div appear at the top of the page with no gap, currently this works in IE but in firefox 2 and opera there is a gap showing the lighter bluey/grey background colour, is this because I am using width 100%? It is probably a very newbish question but any help would be appreciated. Cheers Hi bit of a newbie but confused by following code; The images all display ok and the rounded gif work ok but I get a gap between the divs (highlighted below). Is it margins/paddings? Pulling hair out! Thanks, Bill. .child { width: 200px; background-color:green; background-image: url(unt.bmp) ; } .parent {margin: 0; padding: 0} .bl1 {background: url(_round_bl.gif) bottom left no-repeat ;background-color: blue;width: 200px } .br1 {background: url(_round_br.gif) bottom right no-repeat;} .tl1 {background: url(_round_tl.gif) top left no-repeat;} .tr1 {background: url(_round_tr.gif) top right no-repeat;} </style> </head> <body> <div class="parent"> <div class="child"> <div class="tl1"> <div class="tr1"> <h2>Hello </h2> </div> </div> </div> /* When displayed in browser the above is separated from the following by a gap of around 20 odd px */ <div class="bl1"> <div class="br1"> <h2>Hello</h2> </div> </div> </div> </body> </html> Hello friends, Need some help with CSS layer positioning, which for the last couple of days has been the cause of much frustration. I am updating my site, and am converting some of my code to be more semantic. The test page, which looks 'right' is here. The semantic version, which now places the footer and sidebar within their own divs is here (I have removed the javascript and other text to keep things as simple as possible): The problems I am experiencing: The side bar, shaded blue for clarity is now 'outside the box', see the first link to see how it should be; There is a gap between the bottom of the extra div and the top of the footer div; The positioning of the sidebar is affecting the header/nav - try mousing over 'contact'; In short, I am trying to convert my existing layout to this, but can't seem to get there. Here is what I am striving for: Code: |------------------------------------ | Navigation | |------------------------------------ |Breadcrumbs <p> | ------------------------------------- | | | | Content | Sidebar | | | | ------------------------------------- | Optional Extra | ------------------------------------- | Footer | ------------------------------------- Any help much appreciated! I've created a site with a static background.gif "body" element, then a container (div) where I'm putting my stuff. I want the container to roll up and down against the nice static background in the body margins.(there is an example of what I'm trying to do at CSS garden http://www.csszengarden.com - check out Gothica #027)The problem is that when I use absolute positioning for the elements - the container ignores the content and doesn't size properly. But when I use relative positioning, I can make everything work out OK - except it generates tons of extra space that gets dumped at the bottom of the pages. So my question is - does anyone know how to get rid of the space? BTIA ok I need help laying out my page, and I can't seem to get this CSS stuff right. My page has a logo at the top left, a menu at the top right. Below the logo on the left, I have an image. To the right of that I have another image. The bottom of those two images need to line up. Below those 2 images, I have 3 smaller images I want to display from left to right. I tried to set up DIV blocks, and used CSS to position them. When it lays out on my page, and I scrunch the brower small, the images on the right side overlap and cover the images on the left. Also, the images on the bottom extend below the bottom of the browser, but I don't get a scroll bar to see them. I am told tables are not the way to do it anymore. I am not a web developer, so I need some help, pretty please. Hello, I've got a frame work of a site that's positioned correct in firefox, but it won't align at all in IE. If you look at it in firefox, the site frame shows correct, all centered and all of the images are looking like they are in the correct position. However, when you go to the site in IE, everything is aligned to the left and completely off. How do I get that so it's all showing in the center like it is in Firefox? Site: clayton-nichols(dot)com/Test/index.html CSS style(validated) clayton-nichols(dot)com/Test/css/style.html thanks for the help! Due to popular demand, I have decided to bite the bullet and make the switch from tables to css and divs in layout designs. Obviously, since I am unfamiliar with this practice, I have run into an issue. I am trying to add a link to the right side of my title div, which has a bottom border of 1px...I am not sure how to go about doing this without going down a line or the link not positioning itself to the right... Here is what I have so far: HTML Code: Code: <div class="title" align="left"> <div style="display: inline;"><b>News Updates:</b></div> <!-- The below link needs to align to the right side --> <div style="display: inline;" class="font" align="right"><a href="javascript:void(0);">Add News</a></div> </div> CSS Code: Code: .font { font-size: 0.7em; } .title { font-size: 1.6em; color: #0033FF; border-bottom: 1px solid #0033FF; } I have no idea how to go about this and it seems like it would be so simple. Any help is appreciated. Hello, I am creating a table with several rows that represent records from a database. Each record creates two rows. The first row is basic data. The second row contains detailed data, however, it is initially hidden. When someone hovers over a row, I need to display the detailed information immediately over the basic data. Basically, when the mouse is over a row, I need to position the row directly below it over the current row. I know this sounds odd, but I have a cool idea. I'm trying to do this with CSS and JavaScript, but I can't seem to figure out: 1. How to position the even numbered rows on top of the odd numbered rows when needed WITHOUT readjusting the entire table. Can you please provide some help? Thank you so much, Crystal hi! how to make footer similar to header? e. g. i need it to look as it's in .main class. http://fti.com.ua/lng/ thanx! I'm trying to create a new site based upon a semantic layout. However, I'm running into two problems that I cannot overcome: First, I want my footer div to be below the content div. However, the content div is postion:absolute; ad I can't get the footer to display below it. I've tried position:relative; for the footer and a hunder other things which would not work. If someone could guide me, I'd appreciate it. Second, my content div is going under my ads div, so that a large portion of the content is obscured. How can I correct this? I've tried margins and padding, but they did not work. You can see the layout he http://what-is-what.com Thank you in advance for your assistance. I am a beginner and I'm having trouble with getting the paragraph elements to behave the way I want them to in the header section of the page at the link below. I have the address paragraph staying in position. The hours paragraph, however, doesn't seem to be contained by the header div. It moves to the left as the browser window is resized to be larger. I tried adding right margin to the address paragraph but the hours paragraph doesn't seem to recognize that either. I know I'm doing something wrong but I can't seem to figure out what. The small weather widget has a similar, but not quite the same, problem. It moves to the right. (openrangeimaging(dot)com/Test/Gravity-Test/index-test01.html) I got an error saying I couldn't include links. I read the forum rules and didn't notice anything about that. Hope I'm not breaking the rules here. I'm hoping someone with css expertise can help me get this set up correctly. >>EDIT<< I was, (by luck), able to achieve what I wanted by adding the position: relative to the #container div. The file in link above has been updated with this change. I am a beginner at css. I aspire to have the most "correct" and cleanest code and conform to best practices. If what I have done is still not best practice and should be done in a different way I definitely want to know how it should be styled. Can anyone comment on if what I have done is proper technique? >>End Edit<< Thanks in advance for any help. CSS is very new to me so if someone can help me with my problem i would very much appreciate it. I am using a background image that is 1024 x 768px. I have positioned this using... Code: body { background-color:#000000; background-image:url('images/homebg.jpg'); background-repeat:no-repeat; background-position:center top; } As i am new to css i am using tables to position my content over the top of the background image. If the browser is adjusted in size the content appears to be going over the edge of the background image instead of staying with in it. is there any way i can lock the 2 (background image and content) in position so that when the browser is made smaller or the site is viewed in different resolutions it will remain together without the content going over the edge of the background. Or am i doing this wrong. I have read about wrappers and such but i don't really understand them. An example of what i am trying to achieve is at www.blue-leaf.co.uk Ok. I have a container div in which all of my content for the whole site will be. Inside that I have a header and under it a nav bar on the left. I want to add content to the right of the nav bar but at the same height. If I try to add stuff it goes below. I tried float: left, absolute positioning, and negative margins but none worked since the nav bar then extends over the shrunken conatiner div. Any help on how to make the nav bar and other content side by side would be much appreciated! thanks! Hello all, i have a page setup which is working well in all browsers. I have a div layer positioined in the page at the moment it is positioned absolute, and it is in the correct place you can see it at www.loadedtechnologies.com/impact , the layer is id="demoImage", you can have a look at the css file in page source. I don't want this layer positioned absolute, i want it to be relative to the "MidTopContent" layer, so that when the ADMIN menu appears on the top of the page once logged in, the demoImage layer will follow down within MidTopContent, Please help THANKS I'm using a JS/CSS calender script found at http://www.dynarch.com/projects/calendar/. It works great except for one thing.. it wont position correctly in IE (6 & 7). I have a form with 20 text inputs strait down a page. As per instruction i place the following code just below my desired text input, say at tab index 12. Code: <script type="text/javascript"> Calendar.setup({ inputField : "this_fieled_name", // id of the input field ifFormat : "%Y-%m-%d", // format of the input field showsTime : true, timeFormat : "24" }); </script> When the page and script run, in Firefox its perfect, but in IE, the calender places almost 200px high than desired near tab index 6. My question is, how do i get IE to position as FF does? Here are i think the two most important files that may need affecting. Both are stock from download. http://www.empiresolutions.net/demo/calendar-setup.js http://www.empiresolutions.net/demo/theme.css Thanks much. Cesar thanks for taking the time to read my question. I have a div that I want to float right, but it is staying on the left side, and I can't figure out why. HTML: 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 name="description" content="Warren Persowich Humour Facilitator - Stand-Up Comedian Winnipeg Manitoba. Comedic entertainment performances laughter and insight. Fun professional development. A decade of stand-up experience." /> <meta name="keywords" content="Warren Persowich, Comedian, Comedic, Stand Up, Stand-Up, Comedy, Business, Winnipeg, Manitoba, Cancer, Entertainment, Funny, Hilarious, Interactive, Laughter, Psychology, Professional, Development" /> <meta name="Revisit-After" content="7 Days" /> <meta name="Robots" content="index, follow" /> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name="verify-v1" content="ongXn98vPdWEemx2Lu5qZozNxw3CDdugXLIpK9XzOr4=" /> <title>2 Nations Female Hockey League:::::</title> <script type="text/javascript" src="Javascript/coolmenu.js"></script> <script type="text/javascript" src="Javascript/menu_items.js"></script> <link rel="stylesheet" type="text/css" href="menu_styles.css"> <link rel="stylesheet" type="text/css" href="2NFHL.css"> </head> <body> <script type="text/javascript">var m1 = new COOLjsMenu("menu1", MENU_ITEMS)</script> <div class="LogoDiv"><a href="Index.htm"><img class="Logo" src="Images/WOMENSHOCKEY CHOICE 1Small2.jpg" alt="Two Nations Female Hockey League"></a></div> <div class="NavDiv"> <p class="TeamsNav">Teams: <a href="Team1">Coyotes</a> | <a href="Team2">Extreme</a> | <a href="Team3">Ice Cats</a> | <a href="Team4">Saints</a> | <a href="Team5">Mustangs</a> | <a href="Team6">Lightening</a> | <a href="Team7">On Edge</a></p> </div> <div class="ContentDiv"> <div class="prop"></div> <div class="Welcome"> <p class="FirstLine">Welcome to the Two Nations Female Hockey Leage web site.</p> <p>The Two Nations Female Hockey Leage is a Spring - Summer league that is comprised of female hockey teams hailing from both Canada and United States.</p> <p>To learn more about the Two Nations Female Hockey League, click <a href="AboutUs.htm">here</a> or use the About Us link in the navigation bar above.</p> </div> <div class="TNFHLTW"> <p class="TNFHLTWP">This week in the TNFHL the Coyote's and On Edge faced off in Winnipeg, Manitoba. The teams skated to a 3 all tie.</p> </div> <div class="Banners"> <div class="BannerCont"><img src="Images/ChampWeekend.gif" /></div> <div class="BannerCont"><img src="Images/ChampWeekend.gif" /></div> </div> <div class="clearprop"></div> </div> <div class="BottomNavDiv"> <div class="BottomNavDivCont"> <p class="BottomNavLinkP"><a href="Index.htm" class="BottomNavLink">Home</a> | <a href="Index.htm" class="BottomNavLink">About Us</a> | <a href="Index.htm" class="BottomNavLink">Philosophy</a> | <a href="Index.htm" class="BottomNavLink">Teams</a> | <a href="Index.htm" class="BottomNavLink">Standings</a> | <a href="Index.htm" class="BottomNavLink">Schedule</a> | <a href="Index.htm" class="BottomNavLink">Contact Us</a> | <a href="Index.htm" class="BottomNavLink">Links</a><p/> </div> </div> </body> </html> CSS: Code: html, body { height: 100%; padding: 0; margin: 0; } .LogoDiv { /*background-image:url("Images/WOMENSHOCKEY CHOICE 1Small2.jpg"); background-repeat: no-repeat; background-position: top left;*/ margin: 2px auto; padding: 0px; height: 87px; width: 800px; display: block; } img.Logo { border: 0px; } .Banners { float: right; width: 300; margin: 20px 20px 0px 0px; padding: 0px; background-color: red; /*clear: both;*/ } .BannerCont { width: 300; height: 50px; margin: 5px 0px 0px 0px; padding: 5px 0px 0px 0px; background-color:#362161; } .NavDiv { background-image: url(Images/N2NavBar2.jpg); background-repeat: repeat-x; background-position: top left; padding: 10px 0px 0px 0px; margin: 0px 0px -13px 0px; height: 80px; width: 100%; display: block; } .TeamsNav { padding: 0px; margin: 0px 0px 0px 400px; font-size: 12px; } /*.prop and .clearprop are in here to create a min height of 400px*/ .prop { height: 400px; width: 1px; float: right; background-color: yellow; } .clearprop { clear: both; height: 1px; overflow: hidden; background-color: yellow; } .ContentDiv { width: 800px; /*height: 400px;*/ overflow: hidden; background-image:url(Images/Background-Blue3.jpg); background-repeat: no-repeat; background-position: top left; margin: 0px auto; padding: 0px; display: block; position:static; z-index: -1; } .TNFHLTW{ width: 212px; overflow: hidden; background-image:url(Images/TNFHLThisWeekShortNarrow.gif); background-position: top left; background-repeat: no-repeat; margin: 50px 0px 0px 30px; padding: 50px 0px 0px 0px; } .Welcome { float: right; margin: 10px 20px 0px 0px; overflow: hidden; width: 450px; background-color: aqua; } .FirstLine { font-size: 20px; margin: 0px; padding: 0px; text-align: center; } .COC1 { padding: 2px; margin: 50px 0px 0px 30px; width: 700px; float: left; text-indent: 20px; } .COC { padding: 2px; margin: 10px 0px 0px 30px; width: 700px; float: left; text-indent: 20px; } .OLHolder { margin: 10px 0px 0px 30px; padding: 2px; float: left; width: 700px; } .COCOL li { margin-bottom: 10px; } .COCTitle { padding: 2px; margin: 10px 0px 0px 30px; width: 700px; float: left; text-align: center; font-weight: bold; text-decoration: underline; font-size:18px; } .LinkList li { margin-top: 10px; list-style-type:none; } p.TNFHLTWP { border-left: 1px solid #000000; border-right: 1px solid #000000; border-bottom: 1px solid #000000; padding: 4px; margin: -20px 0px 0px 0px; font-size: 12px; background-color: #ffffff; } .BottomNavDiv { padding: 0px; height: 72px; width: 100%; display: block; border-top: 4px solid red; margin: 0px; height: 25px; } .BottomNavDivCont { margin: 0px auto; width: 800px; overflow: hidden; display: block; height: 25px; padding: 0px 0px 0px 20px; } /*.BottomNavDivCont ul li { display: inline; padding: 0px 10px 0px 0px; font-size: 10px; color: #ff0000; margin: 0px; }*/ .BottomNavLinkP { font-size: 10px; color: #ff0000; display: block; } .BottomNavLink { font-size: 10px; color: #ff0000; } a.BottomNavLink:link{ text-decoration: none; } a.BottomNavLink:visited{} a.BottomNavLink:hover{ text-decoration: underline; } a.BottomNavLink:active{} p.TeamsNav a:link{ text-decoration: none; color: #000099 } p.TeamsNav a:visited{} p.TeamsNav a:hover{ text-decoration: underline; } p.TeamsNav a:active{} .LinkList li a:link { text-decoration: none; color: #000099; } .LinkList li a:visited {} .LinkList li a:hover { text-decoration: underline; } .LinkList li a:active {} I put clear:both on .Banners but then it moves to the bottom under .prop I'd like .Banners to be under .Welcome The page displays the same in FF and IE7, but in IE6 .Banners stretches across most of the .ContentDiv help? |