[CSS] Div niet onder maar naast andere div

Pagina: 1
Acties:

  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
Ik heb de volgende code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
<style>
.main {width: 300px;}
.feature {float: left; width: 90px; padding-bottom: 5px;}
.feature.middle, .feature.right {padding-left: 10px; border-left: 1px #ccc solid;}
.quote {float: left; width: 150px;}
</style>

<div class="main">
  <div class="feature left">Feature 1</div>
  <div class="feature middle">Feature 2</div>
  <div class="feature right">Feature 3, feature three, feature drie</div>
  <div class="quote">Een quote is een quote, of course of course</div>
</div>

In de browser ziet dit er als volgt uit (de quote-div begint op de hoogte waar de feature right div stopt):
Afbeeldingslocatie: http://www.danandan.luna.nl/got/float-fout.gif
Alleen, doordat ik .quote 150 pixels breed heb gemaakt en een float: left heb meegegeven, verwachtte ik dat de quote naast de lange feature right div en onder de features left en middle divs zo worden geplaatst, zoals:
Afbeeldingslocatie: http://www.danandan.luna.nl/got/float-goed.gif
Dit gebeurt dus niet. Ik dacht dat ik misschien id's ipv classes zou moeten gebruiken, maar als ik alle classes in id's verander, blijft het resultaat gelijk. Wat doe ik verkeerd?

[ Voor 21% gewijzigd door Reveller op 26-05-2006 16:50 ]

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


  • RAJH
  • Registratie: Augustus 2001
  • Niet online
bij de class quote de float: left weghalen :)

  • JHS
  • Registratie: Augustus 2003
  • Laatst online: 04-01 15:49

JHS

Splitting the thaum.

90*3 = 270; 270+150 = 420; 420 > 300; dus past het niet, derhalve komt hij eronder te staan :) . Is voor quote blockquote overigens niet een beter element?

RAJH: Daar multiple float lefts te gebruiken komen de divisions juist naast elkaar te staan, zover dat binnen de container past. Zie ook deze testcase.

DM!


  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
@RAJH, dat werkt niet.
@JHS: volgens mij praten jij en ik over iets anders. Feature 1 en 2 is (2 * 90 =) 180 pixels breed en dus moet daar de quote div (150 pixels) onder passen. Voor de duidelijkheid heb ik het voorbeeld wat aangepast.

Ik wil dit:
Afbeeldingslocatie: http://www.danandan.luna.nl/got/float-goed2.gif
Maar ik krijg:
Afbeeldingslocatie: http://www.danandan.luna.nl/got/float-fout2.gif

Ik gebruik de volgende code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<style>
.main {width: 300px;}
.feature {float: left; width: 90px; padding-bottom: 5px;}
.feature.left {background: red;}
.feature.middle {background: yellow;}
.feature.right {background: blue;}
.feature.middle, .feature.right {padding-left: 10px;}
.quote {float: left; width: 150px; background: lime;}
</style>

<div class="main">
  <div class="feature left">Feature 1</div>
  <div class="feature middle">Feature 2</div>
  <div class="feature right">Feature 3, feature three, feature drie</div>
  <div class="quote">Een quote is een quote, of course of course</div>
</div>

Nogmaals: aangezien ik de quote div een float left meegeef, en deze div 30 pixels minder breed is dan de twee divs waar hij onder moet, zou deze css toch moeten werken?

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 01:18

crisp

Devver

Pixelated

nee, dat is niet hoe floats werken

Intentionally left blank


  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
crisp schreef op vrijdag 26 mei 2006 @ 18:24:
nee, dat is niet hoe floats werken
Oke, maar wat is dan wel een oplossing? Als ik de quote div een float: left meegeef, werkt het niet. Zonder float: left (zoals RAJH voorstelde) werkt het ook niet :+

Het enige alternatief dat ik kan bedenken is om het met een tabel op te lossen, maar dat is niet echt Web 2.0 (volgens de intermediair van deze week) ;)

[ Voor 5% gewijzigd door Reveller op 26-05-2006 18:39 ]

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


  • JHS
  • Registratie: Augustus 2003
  • Laatst online: 04-01 15:49

JHS

Splitting the thaum.

De makkelijkste oplossing die ik zo snel kan bedenken is feature 1, 2 en quote in een aparte division te zetten :) . Niet de mooiste oplossing, want onnodige extra markup. Oplossingen met positioning worden denk ik echter moeilijker, aangezien de hoogte niet bekend is.

DM!


  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
Uiteindelijk ben ik hiervoor gegaan:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<style>
.main {width: 300px;}
.feature {width: 100px; padding-bottom: 5px;}
.feature.left {float: left; background: red;}
.feature.middle {float: left; background: yellow;}
.feature.right {float: right; background: blue;}
.feature.middle, .feature.right {padding-left: 10px;}
.quote {width: 150px; background: lime;}
</style>

<div class="main">
  <div class="feature left">Feature 1</div>
  <div class="feature middle">Feature 2</div>
  <div class="feature right">Feature 3, feature three, feature drie</div>
  <div class="quote">Een quote is een quote, of course of course</div>
</div>

Werkt perfect :) Hoop alleen dat het ook correcte css is :)

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


  • JHS
  • Registratie: Augustus 2003
  • Laatst online: 04-01 15:49

JHS

Splitting the thaum.

Ziet er goed uit hoor :) . Er is tegenwoordig overigens ook een CSS highlighter via [code=css] ;) .

DM!

Pagina: 1