Css vraag over backgrounds en footers

Status
Niet open voor verdere reacties.

Baljuin

Gebruiker
Lid geworden
28 aug 2008
Berichten
50
Zit met een probleem... Zie de volgende link: http://www.royromviel.nl/proef/
Dit moet dit worden:Home.jpg

Het gaat mij om de footer en de gestreepte achtergrond die doorloopt.
De footer moet gewoon onderin komen en de gestreepte achtergrond moet niet onnodig doorlopen. Maar let op! Zoals je ziet is de content (text en blok) 940 px en de gestreepte achtergrond loopt aan beide kanten iets uit (1100 pixels breed). Maar de content begint wel al in het oranje! Daarom heb ik de gestreepte achtergrond absolute gepositioneert meteen lagere z-index.

Maar ik kom er niet uit... Hieronder de code, kan iemand mij helpen?

HTML:
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>

<style>
html, body {
				height: 100%;
			}
body {
	font-size: 13px;
	color: #333300;
	margin: 0;
				padding: 0;
	font-family: "Century Gothic", Corbel, "Trebuchet MS", arial;
	background-color: #fff;
	background-image: url(test.png);
	background-repeat: repeat-x;
}

#wrapper {
		margin: 0 auto;
	width: 940px;
	position: relative;
				min-height: 100%;

	
}

#header {
	width: 940px;;
	height: 230px;
	border: 1px #000 solid;
	margin-bottom: 20px;
}


#stripes {
	position: absolute;
    top: 369px;
    left: 50%;
    margin-left: -550px;
	z-index:-2;
	width: 1100px;
	height: 100%;
	background-image: url(bg-wrapper.jpg);
	background-repeat: repeat-y;
	padding-top: 0px;
}

#stripes:before {
	content:"";
	text-align:right;
	position:absolute; 
	z-index:-1; 
	top:0; 
	left:0; 
	right:0; 
	bottom:0; 
	background-image: url(gradient-wrapper.png);
	background-repeat: repeat-x;
	height: 400px;
}

#content {
	width: 940px;
	padding-bottom:125px;   /* Height of the footer */
}

#box {
	height: 300px;
	width: 940px;
	background-color:#000
}

#footer {
   position:absolute;
   bottom:0;
   width:100%;
   height:125px;   /* Height of the footer */
   background:#6cf;
}
</style>


</head>

<body>
<div id="stripes"></div>

		<div id="wrapper">
        <div id="header">sasa</div>
                <div id="content">

			<div id="box"></div>
			<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur arcu nibh, hendrerit a aliquam non, auctor ut nibh. In elementum faucibus vulputate. Fusce pretium ipsum a leo blandit in imperdiet nisl adipiscing. Donec laoreet mauris sed justo imperdiet laoreet. Nunc dictum dictum enim id condimentum. Duis in tortor dolor. Vestibulum sed nibh condimentum velit bibendum dignissim vel et tellus. Morbi eu diam egestas est eleifend adipiscing. Sed vestibulum placerat augue, vel porta quam porttitor sed. Vestibulum tempus tempor erat, sed volutpat ipsum faucibus non. Nullam placerat accumsan nunc, vitae viverra neque mattis sed.</p>
            			<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur arcu nibh, hendrerit a aliquam non, auctor ut nibh. In elementum faucibus vulputate. Fusce pretium ipsum a leo blandit in imperdiet nisl adipiscing. Donec laoreet mauris sed justo imperdiet laoreet. Nunc dictum dictum enim id condimentum. Duis in tortor dolor. Vestibulum sed nibh condimentum velit bibendum dignissim vel et tellus. Morbi eu diam egestas est eleifend adipiscing. Sed vestibulum placerat augue, vel porta quam porttitor sed. Vestibulum tempus tempor erat, sed volutpat ipsum faucibus non. Nullam placerat accumsan nunc, vitae viverra neque mattis sed.</p>
                        			<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur arcu nibh, hendrerit a aliquam non, auctor ut nibh. In elementum faucibus vulputate. Fusce pretium ipsum a leo blandit in imperdiet nisl adipiscing. Donec laoreet mauris sed justo imperdiet laoreet. Nunc dictum dictum enim id condimentum. Duis in tortor dolor. Vestibulum sed nibh condimentum velit bibendum dignissim vel et tellus. Morbi eu diam egestas est eleifend adipiscing. Sed vestibulum placerat augue, vel porta quam porttitor sed. Vestibulum tempus tempor erat, sed volutpat ipsum faucibus non. Nullam placerat accumsan nunc, vitae viverra neque mattis sed.</p>
                                    			<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur arcu nibh, hendrerit a aliquam non, auctor ut nibh. In elementum faucibus vulputate. Fusce pretium ipsum a leo blandit in imperdiet nisl adipiscing. Donec laoreet mauris sed justo imperdiet laoreet. Nunc dictum dictum enim id condimentum. Duis in tortor dolor. Vestibulum sed nibh condimentum velit bibendum dignissim vel et tellus. Morbi eu diam egestas est eleifend adipiscing. Sed vestibulum placerat augue, vel porta quam porttitor sed. Vestibulum tempus tempor erat, sed volutpat ipsum faucibus non. Nullam placerat accumsan nunc, vitae viverra neque mattis sed.</p>
                                                			<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur arcu nibh, hendrerit a aliquam non, auctor ut nibh. In elementum faucibus vulputate. Fusce pretium ipsum a leo blandit in imperdiet nisl adipiscing. Donec laoreet mauris sed justo imperdiet laoreet. Nunc dictum dictum enim id condimentum. Duis in tortor dolor. Vestibulum sed nibh condimentum velit bibendum dignissim vel et tellus. Morbi eu diam egestas est eleifend adipiscing. Sed vestibulum placerat augue, vel porta quam porttitor sed. Vestibulum tempus tempor erat, sed volutpat ipsum faucibus non. Nullam placerat accumsan nunc, vitae viverra neque mattis sed.</p>

		</div>
        <div id="footer"></div>
        </div>
        


	


</body>
</html>
 
ik snap totaal niet waar je niet uit komt en wat je nou eigenlijk wilt... je laat een voorbeeld zien dat totaal niet lijkt op wat je hebt, je oranje zou 1100px breed moeten zijn terwijl het bij mij over de volle breedte van me full hd scherm gaat, er is geen eens een footer en het oranje loopt door in de content (zoals dat bij het voorbeeld ook het geval is...)

wat is dus nou eigenlijk precies het probleem... je legt het ontzettend onduidelijk uit.
 
Hoi Baljuin,
Ach, ik vind 't wel meevallen met de onduidelijkheid; en de blauwe footer heb ik prima kunnen vinden, ook in de html-code. ;)
Met:
Code:
html {
    background: white;
    height: 100%;
    padding-bottom: 1px;
    }
body {
    ....
    width: 1100px;
    margin: 0 auto; /* gecentreerd bij hoge resoluties */
    }
kom je waarschijnlijk wat meer in de buurt.

Maar ... ik denk dat er eerst wat besluiten genomen moeten worden over de breedte van de site:
  • Als de breedte van het oranje bovendeel inderdaad 1100px zou worden, betekent dat, dat bezoekers met een resolutie van 1024*768px:
    ofwel links-rechts moeten scrollen om de pagina volledig te kunnen zien en lezen (wat niet gebruikersvriendelijk is),
    ofwel het rechterstukje van de hand in het oranje niet kunnen zien (wat geen mooi gezicht is).
  • Als je de oranje kop-breedte op 990px zet, heb je daar geen last van > dan moet dus het middendeel naar verhouding ook wat smaller worden.
Om er achter te komen en goed te kunnen beslissen, denk ik dat je een paar screenprints van de afbeelding op ware grootte in verschillende resoluties naast elkaar moet leggen. Dan zie je precies hoe de browservensters er uit komen te zien bij die resoluties.

Met vriendelijke groet,
CSShunter
 
Laatst bewerkt:
Het oranje hoort inderdaad over de volle breedte van het scherm te gaan! Dat is het probleem niet. En de tekst en blokken zijn allemaal 940 pixels lang. Dat past dus prima bij schermen met lagere resoluties. De hand moet meeschuiven straks.

Maar het gaat mij dus over de gestreepte achtergrond onder het oranje. En het gaat me om de footer. Die gestreepte achtergrond is 1100 pixels (kan ook 990px worden).

Waar het me om gaat is dat die grijze gestreepte achtergrond eigenlijk de achtergrond is van de content (die dus 940px is). En die begint al in het oranje gedeelte. Als ik die grijze gestreepte achtergrond dus als background in de content div zet, dan krijg je witranden in het oranje waar die zwarte box zit.
Daarom heb ik van die gestreepte achtergrond een div buiten de wrapper gedaan. Maar nu loopt hij in sommige browsers ver onder de footer door of stopt hij ergens halverwege al (te vroeg dus). Daarnaast moet hij eigenlijk een paar pixels over de footer heen komen (zoals in het plaatje). Die achtergrond doet nu dus niet wat ik wil.
En waarschijnlijk pak ik het verkeerd aan, maar het is eigenlijk wel de bedoeling dat de gestreepte achtergrond niet iets breder is dan de content.
 
Ik heb het opgelost! Ik heb een grote div (#site) die zo groot en wijd als de browser is genomen. Daarbinnen een header (#site-header) voor de oranje (browserbreed), footer (#site-footer) en een wrapper (#wrapper) voor de content. De header en de footer zijn beide browser breed. in #site heb ik de strepen als background gedaan en op de x-as in het midden gezet. De strepen lopen zo onder het oranje en footer door.

De wrapper zet ik met margin: 0 auto in het midden en is 940px breed. Met margin-top: -100 komt die toch gedeeltelijk in het oranje vlak. En dat wil ik ook zo.

Speciaal voor mensen met hetzelfde probleem hier de code:

HTML:
<!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>
<title>Untitled Document</title>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css">
	html, body {
		height: 100%;
	}
	
	body {
		margin: 0;
		padding: 0;
	}
	
	#site {
		position: absolute;
		z-index:-2;
		min-height: 100%;
		width: 100%;
		background-image: url(bg-wrapper.jpg);
		background-position: center;
		background-repeat: repeat-y;
	}

	#site:before {
		content:"";
		text-align:right;
		position:absolute; 
		z-index:-1; 
		top:230px; 
		left:0; 
		right:0; 
		bottom:0; 
		background-image: url(gradient-wrapper.png);
		background-repeat: repeat-x;
		height: 400px;
	}	

	#site-header {
		background-image: url(test.png);
		background-repeat: repeat-x;
		height: 230px;
		width: 100%;
	}
			
	#content {
		padding: 10px;
		background-color: #6caad9;
		padding-bottom: 48px;
	}
	
	#site-footer {
		position: absolute;
		bottom: 0;
		padding: 10px;
		width: 100%;
		height: 100px;
		background-image: url(bg-footer.png);
		background-repeat: repeat-x;
	}
	
	#wrapper {
		margin: 0 auto;
		width: 940px;
		min-height: 100%;
		border: 1px solid #000;
		margin-top: -100px;
	}

</style>

	</head>
	<body>
		<div id="site">
        <div id="site-header">
        <div id="header"></div>
        </div>
			<div id="wrapper">dsds
            
            
			</div>
			<div id="site-footer">
            <div id="footer"></div>
			</div>
		</div>
	</body>
</html>

CSShunter, bedankt voor de tijd die je hebt genomen om me te helpen!
 
Laatst bewerkt:
Hoi Baljuin,
Ik heb het opgelost!
Nog niet helemaal, want bij een korte pagina komt de pagina (en de arcering) nog een half scherm onder de footer uit:
En bij een lange pagina houdt de arcering ergens in het midden op:
Ik zat meer te denken aan zo'n soort model:
HTML:
<body>

	<div id="wrapper">
		<div id="header">
			<div id="headercontent">
				[#header content]
			</div>
		</div>
		
		<div id="blackbox">
			<div id="blackboxtop"></div>
			<div id="blackboxcontent">
				[#blackbox content]
			</div>
		</div>
		
		<div id="maincontent">
			[#main content]
		</div>
	</div>

	<div id="footer">
		[#footer content]
	</div>

</body>
Hierbij is de #footer uit de omhullende <div>'s gehaald, zodat de #footer lekker ongestoord van z'n absolute positie op de bodem kan genieten.
De #footer staat volledig parallel aan de #wrapper, dat zijn samen de enige twee <div>'s in de <body>.
Door de <bodY> een relatieve positie te geven en op minstens 100% hoogte in te stellen, blijft de footer ook bij een langere pagina onderaan (die staat "absoluut onderaan, relatief t.o.v. de body"!).
De #blackbox zal zich ook moeten kunnen aanpassen aan de inhoud ervan (bv. als een bezoeker op een groter letterformaat heeft ingezoomd), zodat de bg-images daarvan opgesplitst zullen moeten worden.
Het knipstrookje bovenaan voor het uitdijend heelal bij hoge resoluties zit nu in de <html>. De arcering-background is naar de <body> verhuisd: de rest wordt er steeds overheen geplakt.
Met als css:
Code:
html {
	height: 100%;
	padding-bottom: 1px;
	background: url(images/knipstrook2.png) repeat-x;
	}
body { 
	position: relative;
	width: 990px;
	margin: 0 auto;
	min-height: 100%;
	background: url(images/bg-wrapper2.png) repeat-y 50% 0;
	}
#wrapper {
	padding-bottom: 150px;           /* footer-height + nog wat */
	background: url(images/gradient-wrapper.png) repeat-x 0 380px;
	}
#header {
	height: 380px;
	background: url(images/oranje-kop-256.png);
	}
#headercontent {
	width: 840px;
	margin: 0 auto;
	height: 230px;
	border: 2px dotted fuchsia;
	color: white;
	margin-bottom: 20px;
	}
#blackbox {
	width: 840px;
	margin: -125px auto 0 auto;
	background: url(images/blackbox-midden.png) repeat-y;
	}
#blackboxtop {
	height: 75px;
	margin-bottom: -75px;
	background: url(images/blackbox-top.png);
	}
#blackboxcontent{
	min-height: 150px;
	color: white;
	background: url(images/blackbox-bottom.png) no-repeat 0 100%;
	}
#maincontent {
	width: 840px;
	margin: 20px auto 0 auto;
	border: 2px dotted fuchsia;
	}
#footer {
	position: absolute;
	bottom: 0;
	left: 50%;
	margin-left: -420px;
	width: 840px;
	height: 125px;
	background: #6cf;
	}
Dat geeft dan op verschillende pagina-hoogtes als beeld:
Zoom-bestendig, ook als alleen de lettergrootte wordt opgeschaald of neergeschaald. :)

Met vriendelijke groet,
CSShunter
________
O ja, IE7 kan niet overweg met de #stripes:before {...} selector; die zou ik niet gebruiken.
 
Laatst bewerkt:
aha, ok. Maar zoals ik het heb aangepakt kan het toch ook? http://www.royromviel.nl/proef/
Ik merkte bij jouw concept namelijk dat ie soms niet helemaal in het midden staat (open het maar op een smartphone)


Enige wat nog niet klopt is de hand in de header. Die moet fixed staan, maar schuift nu nog mee op de resolutie. Maar daar kom ik wel uit. Of niet (ff overleggen met meneer de vormgever), vind het zelf wel prima namelijk.

Ik heb in ieder geval wel jouw tip gebruikt om :before niet te gebruiken. Dat heb ik gedaan door de grijze strepen als body background te doen en de gradient vervaging in #site. Nu doet ie het overal goed. Alleen het handje nog dan.

Bedankt dat je het er niet bij hebt laten zitten, maar toch nog ff antwoord gaf :)
 
Maar zoals ik het heb aangepakt kan het toch ook?
Ja, deze doet het beter dan de eerdere proefversie die ik voor m'n testen had gebruikt. :)
  • Enige wat ik kan ontdekken is dat als je in FF inzoomt op alleen de lettergrootte, de menubalk onder de blackbox gaat schuiven (screenshot). Maar met ergens een vaste hoogte inpompen zou dat op te lossen moeten zijn.
Ik merkte bij jouw concept namelijk dat ie soms niet helemaal in het midden staat (open het maar op een smartphone)
Zou kunnen, 'kheb geen smartphone ... :rolleyes:

Succes verder!
CSShunter
 
Top bedankt! voortaan check ik idd ook ff die zoomfuncties van de firefox. Bij IE gaat het wel goed namelijk. Maar het stramien staat nu. Kan ik eindelijk verder :) super bedankt!
 
Hoi Baljuin,
Ik ben nog niet weg te slaan. ;)

Bij IE gaat het wel goed namelijk.
Ja, klopt: dat komt omdat er een fixed font-size (31px) is ingesteld, en IE dan niet reageert op client side vergroten van het letterformaat.
Maar:
IE zondigt daarmee tegen de belangrijke regel (i.v.m. accessibility) dat de bezoekers het recht horen te hebben om zelf het letterformaat in te stellen. Vandaar dat Richtlijn 1.4.4 van de WCAG (WebContentAccesibilityGuidelines) voorschrijft:
  • 1.4.4 Resize text: Except for captions and images of text, text can be resized without assistive technology up to 200 percent without loss of content or functionality. (Level AA)
  • Dit gaat gepaard met een pagina met aanbevolen succes-technieken: font-sizes altijd opgeven in % (of em's, wat op hetzelfde neerkomt).
Wellicht vertel ik nu bekende kost - dan is het voor over-de-schouder-meelezers bij dit topic. :)

Met vriendelijke groet,
CSShunter
 
Ja je hebt helemaal gelijk! ik ga alle teksten nog voorzien van em ipv px. Maar eerst wilde ik die layout afhebben.

De kop bovenin, overigens, hou ik een vaste grootte aan. Dat wordt toch een plaatje.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan