Ik heb het volgende probleem en kan maar niet tot een passende oplossing komen. Ik wil graag de pagina met een #header div beginnen welke 300 pixels hoog is en ook een passende background van 300 pixels hoog heeft. Dit is geen probleem.
Vervolgens komt hierna de #content div van de pagina welke een achtergrond heeft die blijft herhalen in de y richting tot de pagina geen inhoud meer bevat. Dit is ook geen probleem.
Nu wil ik echter dat de daadwerkelijke inhoud van de #content div (#page div met H1 en paragraaf) halverwege de #header div begint (op 150pixels bijvoorbeeld). Dit, omdat de header background een aflopend plaatje is wat ik op de achtergrond wil zien wegfaden waarna de herhalende achtergrond van de content div verder gaat.
Vervolgens komt hierna de #content div van de pagina welke een achtergrond heeft die blijft herhalen in de y richting tot de pagina geen inhoud meer bevat. Dit is ook geen probleem.
Nu wil ik echter dat de daadwerkelijke inhoud van de #content div (#page div met H1 en paragraaf) halverwege de #header div begint (op 150pixels bijvoorbeeld). Dit, omdat de header background een aflopend plaatje is wat ik op de achtergrond wil zien wegfaden waarna de herhalende achtergrond van de content div verder gaat.
- Ik heb al geprobeerd om de page div een negatieve top margin te geven van 150px. Dit zorgt er voor dat de H1 wel halverwegen de header begint, maar dan heb ik de background van de content div ook over de header heen staan. En dus maar een halve header.
- Ik weet dat CSS3 de mogelijkheid biedt om 2 background images op te geven, maar de pagina moet minimaal IE7 compatible zijn, dus dat is geen optie.
- Mijn laatste redmiddel is het opdelen van de content in twee delen (content welke in de header en met de header als background te zien moet zijn en content welke hierna komt. Dit zal echter altijd voor een horizontale lijn in mijn pagina zorgen terwijl ik het liefst ook nog een kader zou willen trekken om zowel mijn H1, welke boven de header bg staat, en de eerste paragraaf welke boven de content bg staat.
- Beide achtergronden zijn transparant, dus kan ik het me helaas niet veroorloven om met een div in een div met twee overlappende achtergronden te werken.
- Met de div in div constructie heb ik background-position ook al geprobeerd met het doel de herhalende background lager te laten beginnen, maar dat gaat niet in combinatie met repeat-y. Als ik na 300 pixels met de herhalende background begin welke herhaald in de y richting, dan wordt dit ook terug naar boven herhaald.
HTML: index.html
1
2
3
4
5
6
7
8
9
| <div id="wrapper"> <div id="header"></div> <div id="content"> <div id="page"> <h1>title</h1> <p>The first paragraph</p> </div> </div> </div> |
Cascading Stylesheet: style.css
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| body { background-image: url(bg.jpg); background-repeat: repeat-x; } #wrapper { width: 994px; margin: 20px auto; } #header { background-image: url(header.png); background-repeat: no-repeat; height: 300px; } #content { background-image: url(repeating-bg.png); background-repeat: repeat-y; } #page { position: relative; margin-top: -200px; } |
[ Voor 9% gewijzigd door Verwijderd op 04-11-2010 17:11 ]