[css] 2 backgrounds zonder scroll

Pagina: 1
Acties:

  • DJH
  • Registratie: Oktober 2000
  • Laatst online: 28-03 00:05
Ik probeer een website te maken met als eerste achtergrond een plaatje van 1600 x 300 en als 2e 1600 x 10 (herhalend naar beneden). Ik probeer dit met css te doen, maar ik kom er niet helemaal uit.

Als men de website bezoekt moet men de achtergronden gecentreerd zien (dus bij 800 x 600 moet men het gedeelte van 400 pixels tot 1200 pixels zien van de achtergronden) De rest moet pas zichtbaar worden als men het venster groter maakt. How?

Ik hoop dat dit niet als script request over komt, ik vraag me gewoon af met welke taal script dit kan. bvd!

  • Amras
  • Registratie: Januari 2003
  • Laatst online: 01-10-2025
Laat eerst eens zien wat je geprobeerd hebt, post wat relevante code. ;)

  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
je kunt je body een background geven en daarin een div plaatsen met de andere background...

psuedo

code:
1
2
3
<body style="background:url("1600_10.jpg") repeat-y;">
<div style="background:url("1600_300.jpg"); height:XXXpx;"></div>
</body>


is dus gewoon een "truucje"

[ Voor 22% gewijzigd door faabman op 14-03-2004 14:52 ]

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


Verwijderd

code:
1
background:url(img) no-repeat top center;
Op elk element kun je 1 background-image zetten (uiteraard kun je bij geavanceerde browsers, zoals Opera, meer leuke dingen doen).

Verwijderd

Geef het html element het zich herhalende achtergrondplaatje, positioneer die aan de bovenkant in het midden, en laat het plaatje zich alleen in de y-richting herhalen.

Geef het body element geen margin, en het header plaatje, positioneer die aan de bovenkant in het midden, en laat het plaatje zich niet herhalen.

En nu kun je dit zelf oplossen met de volgende pagina:
http://www.w3.org/TR/CSS2/propidx.html

[ Voor 3% gewijzigd door Verwijderd op 14-03-2004 14:55 ]


  • DJH
  • Registratie: Oktober 2000
  • Laatst online: 28-03 00:05
Oke, ik ben nu vanalles aan het proberen, maar wat ik ook probeer, er komt helemaal niks :( :(

Dit werkt niet, het hele scherm blijft wit :(
code:
1
body { background:url("/img/back1.jpg") no-repeat top center; }


Dit werkt ook niet:
code:
1
<div id="back2"></div>

En dan in de style sheet:
code:
1
div#back2{ background: url("/img/back1.jpg") top center; }


Wat ik ook wijzig, het blijft wit :(

Voor de zekerheid: linkje

  • NH298
  • Registratie: November 2002
  • Laatst online: 10-10-2021
volgens mij klopt het pad naar je plaatje in je css niet ;)

System specs


  • DJH
  • Registratie: Oktober 2000
  • Laatst online: 28-03 00:05
NH298 schreef op 14 maart 2004 @ 15:28:
volgens mij klopt het pad naar je plaatje in je css niet ;)
Dat blijkt het wel te zijn..

Heb nu de volledige pad erin getypt, maar zie nog steeds de fout niet.. maargoed.

  • NH298
  • Registratie: November 2002
  • Laatst online: 10-10-2021
/img/back.jpg verwijst naar http://www.xs4all.nl/img/back.jpg

Dit werkt wel:
code:
1
background-image: url("/~djh/zomaar/img/back1.jpg");

of
code:
1
background-image: url("./img/back1.jpg");

[ Voor 21% gewijzigd door NH298 op 14-03-2004 15:40 ]

System specs


Verwijderd

De div waarin je het tweede achtergrondplaatje hebt gezet, heeft geen hoogte. Zet daar eens een hoop tekst in, of iets dergelijks? Genoeg om het scherm half te vullen bijvoorbeeld.

  • DJH
  • Registratie: Oktober 2000
  • Laatst online: 28-03 00:05
Verwijderd schreef op 14 maart 2004 @ 15:40:
De div waarin je het tweede achtergrondplaatje hebt gezet, heeft geen hoogte. Zet daar eens een hoop tekst in, of iets dergelijks? Genoeg om het scherm half te vullen bijvoorbeeld.
(thx, nhx298)

Als ik tekst in die div zet, wordt de achtergrond zichtbaar, maar wel verkeerd. Die achtergrond in die div moet eigenlijk precies zo als de eerste (in de body) maar dat repeat-y. Maar dat wil nog niet !?

code:
1
2
3
4
5
6
7
div#back2
        {
        background-image: url("http://www.xs4all.nl/~djh/zomaar/img/back2.jpg");
        background-attachment: fixed;
        background-position: top center;
        background-repeat: repeat-y;
        }


p.s. ik werk online, dus kan elk moment veranderen ;)

[ Voor 25% gewijzigd door DJH op 14-03-2004 15:51 ]


  • DJH
  • Registratie: Oktober 2000
  • Laatst online: 28-03 00:05
Je kan dus bij elk element een background plaatsen, ik neem aan bij de body maar 1..

Ik heb dus 1 body background en de rest met ?div's? maar die worden niet zichtbaar alleen als ik er tekst in typ, maar dan ziet er niet uit..

Hoe kan ik die div's zichtbaar maken? zodat die background net zo werkt als de body background?

  • NH298
  • Registratie: November 2002
  • Laatst online: 10-10-2021
Door ze een hoogte en een breedte mee te geven in je css :?

Ik zou eens een tutorial over css gaan lezen......

System specs


  • DJH
  • Registratie: Oktober 2000
  • Laatst online: 28-03 00:05
NH298 schreef op 14 maart 2004 @ 16:16:
Door ze een hoogte en een breedte mee te geven in je css :?

Ik zou eens een tutorial over css gaan lezen......
Ik weet me al redelijk met css te redden, maar probeer nu iets wat ik nog nooi gedaan heb eigenlijk. Als ik een height en een width aan de div geef, wordt hij niet gecentreerd, maar komt hij relatief aan de zijkant.

Dus heb nog 1 vraagje:
Hoe kan ik een div zo maken zodat die background net zo werkt als de body background?

Hij wil ook geen repeat-y doen :?

  • NH298
  • Registratie: November 2002
  • Laatst online: 10-10-2021
Je div kan je centreren d.m.v. de volgende css:
code:
1
2
3
4
5
    position:absolute;
    top:0px;
    left:50%;
    width:500px;
    margin-left:-250px;


Waarbij de breedte het dubbele is van je margin-left, waarde mag je zelf bepalen.

Of je div een breedte van 100% meegeven :)

[ Voor 10% gewijzigd door NH298 op 14-03-2004 16:32 ]

System specs


Verwijderd

Een DIV strekt zich automatisch in de breedte. Dus comment hierboven slaat nergens op. Daarnaast is de gekozen centreer methode nou niet echt de beste...

Theoretisch kun je het HTML element een background geven. Welke dan op de viewport gezet wordt en het BODY element. Aantal browsers ondersteund dat ook, maar IE niet.

Dus voor IE zet je 1 background op het BODY element, gebruik makend van de code die ik eerder heb gegeven. 'fixed' werkt alleen correct op het BODY element in IE, dus dat kun je ook maar beter vergeten.

In het BODY element zet je dus een DIV, daarin komt je content en de DIV geef je het tweede achtergrondplaatje.

Als het nu nog steeds niet werkt, geef dan even een URI, zodat we even kunnen zien wat je precies fout doet.

  • DJH
  • Registratie: Oktober 2000
  • Laatst online: 28-03 00:05
Verwijderd schreef op 14 maart 2004 @ 17:43:
Een DIV strekt zich automatisch in de breedte. Dus comment hierboven slaat nergens op. Daarnaast is de gekozen centreer methode nou niet echt de beste...

Theoretisch kun je het HTML element een background geven. Welke dan op de viewport gezet wordt en het BODY element. Aantal browsers ondersteund dat ook, maar IE niet.

Dus voor IE zet je 1 background op het BODY element, gebruik makend van de code die ik eerder heb gegeven. 'fixed' werkt alleen correct op het BODY element in IE, dus dat kun je ook maar beter vergeten.

In het BODY element zet je dus een DIV, daarin komt je content en de DIV geef je het tweede achtergrondplaatje.

Als het nu nog steeds niet werkt, geef dan even een URI, zodat we even kunnen zien wat je precies fout doet.
Ik heb het inmiddels opgelost, de url is: http://www.xs4all.nl/~djh/zomaar/index.html

De 3 div's naast elkaar gaan in elkaar op als het scherm kleiner wordt gemaakt zag ik net, dit is nou niet echt praktisch! Ik denk dat ik dan px moet gebruiken ipv %

En die marge class werkt ook niet, maar daar moet ik nog even naar kijken..

Het externe css bestand is:
code:
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
body        
        {
        background-image: url("http://www.xs4all.nl/~djh/zomaar/img/back2.jpg");
        background-attachment: absolute;
        background-position: top center;
        background-repeat: repeat-y;
        scrollbar-3dlight-color: #C9CBB6; 
        scrollbar-arrow-color: #817E6D; 
        scrollbar-base-color: #ffffff; 
        scrollbar-darkshadow-color: #ffffff; 
        scrollbar-face-color: #E1E1E1; 
        scrollbar-highlight-color: #ffffff; 
        scrollbar-shadow-color: #817E6D;
        background-color: #FFFFFF;
        font-family: verdana; 
        font-size: 10px;
        margin-bottom: 0px;
        margin-top: 0px;
        margin-left: 0px;
        margin-right: 0px; 
        }

div#header1
        {
        background-image: url("http://www.xs4all.nl/~djh/zomaar/img/header1.jpg");
        background-attachment: absolute;
        background-position: top center;
        background-repeat: no-repeat;
        width: 100%;
        height: 100%;
        z-index:2;
        }

div#bottom1
        {
        position:absolute;
        background: #E8E8E8;
        bottom:0;
        left:50%;
        width:800px;
        margin-left:-400px;
        text-align: center;
        }
div#contentl
        {
        position:absolute;
        background: #E8E8E8;
        top:295px;
        left:25%;
        width:150px;
        height:350px;
        margin-left:-75px;
        border-style: solid;
        border-width: 0px 1px 1px 1px;
        }
div#contentl2
        {
        position:absolute;
        background: #969696;
        top:280px;
        left:25%;
        width:150px;
        height:15px;
        margin-left:-75px;
        border-style: solid;
        border-width: 1px 1px 1px 1px;
        font-weight: bold; 
        }
div#contentm
        {
        position:absolute;
        background: #E8E8E8;
        top:295px;
        left:50%;
        width:450px;
        height:350px;
        margin-left:-225px;
        border-style: solid;
        border-width: 0px 1px 1px 1px;
        }
div#contentm2
        {
        position:absolute;
        background: #969696;
        top:280px;
        left:50%;
        width:450px;
        height:15px;
        margin-left:-225px;
        border-style: solid;
        border-width: 1px 1px 1px 1px;
        font-weight: bold; 
        }
div#contentr
        {
        position:absolute;
        background: #E8E8E8;
        top:295px;
        left:75%;
        width:150px;
        height:350px;
        margin-left:-75px;
        border-style: solid;
        border-width: 0px 1px 1px 1px;
        }
div#contentr2
        {
        position:absolute;
        background: #969696;
        top:280px;
        left:75%;
        width:150px;
        height:15px;
        margin-left:-75px;
        border-style: solid;
        border-width: 1px 1px 1px 1px;
        font-weight: bold; 
        }
div#contentu
        {
        position:absolute;
        background: #E8E8E8;
        top:675px;
        left:50%;
        width:780px;
        height:250px;
        margin-left:-390px;
        border-style: solid;
        border-width: 0px 1px 1px 1px;
        }
div#contentu2
        {
        position:absolute;
        background: #969696;
        top:660px;
        left:50%;
        width:780px;
        height:15px;
        margin-left:-390px;
        border-style: solid;
        border-width: 1px 1px 1px 1px;
        font-weight: bold; 
        }
div#water
        {
        position: absolute;
        top:325px;
        left:50%;
        width:200px;
        height:200px;
        margin-left:-100px;
        }
div.marges
        {
        margin-bottom: 5px;
        margin-top: 5px;
        margin-left: 5px;
        margin-right: 5px; 
        {



Dit werkt in ieder geval, maar is dit een correcte manier? Commentaar zeer welkom! ;)

[ Voor 5% gewijzigd door DJH op 14-03-2004 19:04 ]


  • NH298
  • Registratie: November 2002
  • Laatst online: 10-10-2021
Verwijderd schreef op 14 maart 2004 @ 17:43:
Een DIV strekt zich automatisch in de breedte. Dus comment hierboven slaat nergens op. Daarnaast is de gekozen centreer methode nou niet echt de beste...
Hoe moet je dan een div centreren als je dat wil, de andere methode die ik ken is margin:auto; voor left en right.

Maar als je een betere weet, dan wil ik die graag horen :)

System specs


  • Blauw
  • Registratie: Januari 2001
  • Laatst online: 16:08

Blauw

De Schreeuw

NH298 schreef op 14 maart 2004 @ 21:44:
[...]

Maar als je een betere weet, dan wil ik die graag horen :)
Anders (over beter/slechter laat ik me niet uit)

zo

code:
1
2
3
4
5
6
7
8
9
10
11
12
body {margin:0px; padding:0px;}

#Content {
    position:absolute;
    left:50%;
    width:500px;
    margin-top:50px;
    margin-left:-266px;
    padding:15px;
    border:1px dashed #333;
    background-color:#eee;
    }

  • NH298
  • Registratie: November 2002
  • Laatst online: 10-10-2021
Is toch dezelfde techniek????

System specs


Verwijderd

De 'margin:0 auto;' + expliciete width is de beste ( http://annevankesteren.nl/test/templates/center-h ). Er zijn ook nog andere methoden die alleen in Mozilla/Opera/Safari werken, maar dat lijkt me niet relevant.

  • NH298
  • Registratie: November 2002
  • Laatst online: 10-10-2021
Ze werken allebei in zowel IE als Mozilla browsers, volgens mij. Maar goed daar gaat deze discussie niet over. Volgens mij is TS met zijn probleem geholpen.

System specs


  • DJH
  • Registratie: Oktober 2000
  • Laatst online: 28-03 00:05
Ja dat klopt, allen bedankt!

En Anne, die methode die jij naar voren haalt is ook interessant, die zal ik vandaag of morgen ook eens proberen :)
Pagina: 1