<p> element schuift kolom naar beneden

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Erwin H

Erwin H

22/02/2013 10:51:42
Quote Anchor link
Als ik ergens een hekel aan heb...

Situatie: Een twee kolommen structuur met divjes. De linker kolom moet bevat het menu en de rechter de content. Deze staan via een float naast elkaar. Geen probleem totdat ik een paragraaf toevoeg in de rechter kolom. Deze bevat meer tekst dan 1 regel, waardoor de hele rechter kolom nu opeens onder de linker terecht komt. Met alle andere elementen (tables, forms, headings, etc etc) loopt het prima, alleen de paragraaf gooit alles in de war.

Iemand enig idee hoe ik dit op kan lossen?

relevante css:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#left_bar{
  position: relative;
  float: left;
  width: 240px;
}
/* de rechter kolom met alle content */
#content {  
  float: left;
  margin-left: 25px;
  margin-right: 25px;
  min-width: 670px;
  width: auto;
}
#footer{
  clear: both;
}

Op het p element zitten op dit moment geen css regels.
 
PHP hulp

PHP hulp

24/11/2024 18:36:48
 
Mike Koopman

Mike Koopman

22/02/2013 10:55:23
Quote Anchor link
Dat hij daaronder terecht komt dat komt mogelijk omdat de div met het id content een minimale breedte van 670px mee krijgt. Alleen zodra hij iets breder zou worden dan 670px wat waarschijnlijk de maximale breedte is? Als je min-width vervangt door width dat dat wellicht de oplossing is voor eht probleem.
 
Erwin H

Erwin H

22/02/2013 11:00:34
Quote Anchor link
Dat zal zeker het probleem oplossen, alleen geeft dat weer een ander probleem. Namelijk dat andere elementen wel breder moeten kunnen worden indien nodig... Hoewel als ik daar nu over nadenk, dat waarschijnlijk ook hetzelfde probleem zou kunnen gaan geven.
 
Mike Koopman

Mike Koopman

22/02/2013 11:01:36
Quote Anchor link
Heb je misschien wat meer code en/of een voorbeeld zodat ik een beeld kan krijgen van het probleem?
 
Erwin H

Erwin H

22/02/2013 11:13:20
Quote Anchor link
De hele pagina kan ik niet geven, maar deze test pagina laat het probleem zien. Als je de eerst paragraaf laat staan werkt het zoals het moet. Als je de tweede er bij zet, dan komt alles onder het menu te staan.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<html>
<head>
  <style>
    #left_bar{
      position: relative;
      float: left;
      width: 240px;
    }
    /* de rechter kolom met alle content */
    #content {  
      float: left;
      margin-left: 25px;
      margin-right: 25px;
      min-width: 670px;
      width: auto;
    }
    #footer{
      clear: both;
    }
  </style>
</head>

<body>

  <div id="left_bar">
    <ul>
      <li>menu 1</li>
      <li>menu 2</li>
      <li>menu 3</li>
    </ul>
  </div>
  <div id="content">
    <p>minder tekst</p>
    <!--p>
      Sed lacus. Donec lectus. Nullam pretium nibh ut turpis. Nam bibendum. In nulla tortor, elementum vel, tempor at, varius non, purus. Mauris vitae nisl nec consectetuer. Donec ipsum. Proin imperdiet est. Phasellus dapibus semper urna. Pellentesque ornare, orci in consectetuer hendrerit, urna elit eleifend nunc, ut consectetuer nisl felis ac diam. Etiam non felis. Donec ut ante. In id eros. Sed lacus. Donec lectus. Nullam pretium nibh ut turpis. Nam bibendum. In nulla tortor, elementum vel, tempor at, varius non, purus. Mauris vitae nisl nec consectetuer. Donec ipsum. Proin imperdiet est. Phasellus dapibus semper urna. Pellentesque ornare, orci in consectetuer hendrerit, urna elit eleifend nunc, ut consectetuer nisl felis ac diam. Etiam non felis. Donec ut ante. In id eros.
    </p-->
  </div>

</body>
 
Wouter J

Wouter J

22/02/2013 11:24:03
Quote Anchor link
Ik hoop dat je normaal wel een doctype (<!doctype html>) gebruikt?

Ik denk dat dit is wat je wilt: http://jsbin.com/uqirex/1/watch
 
Erwin H

Erwin H

22/02/2013 11:26:06
Quote Anchor link
Doctype heb ik erin staan inderdaad, niet in het voorbeeld inderdaad (hoewel ik nu wel even ga kijken of dat helpt).

Toevoeging op 22/02/2013 11:30:21:

En wat je geeft Wouter is wel wat ik nodig heb. Nu alleen nog met een extra handicap...

Binnen de content heb ik ook nog floatende elementen (plaatjes in tekst bijvoorbeeld). Als ik dan aan een andere element in #content een "clear: both" meegeef, dan komt die onder het menu uit. Ook dat is natuurlijk weer niet wat ik wil. Hoe los ik dat dan weer op (binnen de probleemstelling van hierboven uiteraard).
 
Wouter J

Wouter J

22/02/2013 12:06:38
Quote Anchor link
Erwin, kun je daar misschien een voorbeeldje van geven? Ik kan je probleem namelijk niet reproduceren.
 
Erwin H

Erwin H

22/02/2013 12:11:37
Quote Anchor link
Sure, met de css uit jouw pastebin.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<!DOCTYPE html>
<html>
<head>
  <style>
    #wrapper{
      min-width:810px;
    }

    #left_bar{
      float: left;
      width: 240px;

      _outline:1px solid red;
    }

    /* de rechter kolom met alle content */
    #content {
      margin-left:240px;
      padding:0 25px;

      _outline:1px solid blue;
    }
    form{ clear: both; }
  </style>
</head>

<body>
  <div id="wrapper">
    <div id="left_bar">
      <ul>
        <li>menu 1</li>
        <li>menu 2</li>
        <li>menu 3</li>
      </ul>
    </div>
    <div id="content">
      <p>minder tekst</p>
      <!--p>
        Sed lacus. Donec lectus. Nullam pretium nibh ut turpis. Nam bibendum. In nulla tortor, elementum vel, tempor at, varius non, purus. Mauris vitae nisl nec consectetuer. Donec ipsum. Proin imperdiet est. Phasellus dapibus semper urna. Pellentesque ornare, orci in consectetuer hendrerit, urna elit eleifend nunc, ut consectetuer nisl felis ac diam. Etiam non felis. Donec ut ante. In id eros. Sed lacus. Donec lectus. Nullam pretium nibh ut turpis. Nam bibendum. In nulla tortor, elementum vel, tempor at, varius non, purus. Mauris vitae nisl nec consectetuer. Donec ipsum. Proin imperdiet est. Phasellus dapibus semper urna. Pellentesque ornare, orci in consectetuer hendrerit, urna elit eleifend nunc, ut consectetuer nisl felis ac diam. Etiam non felis. Donec ut ante. In id eros.
      </p-->
      <form>
        <input type="text">
      </form>
    </div>
  </div>  

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

</body>

Je ziet nu dat het form onder het menu terecht komt. Nog wel binnen de juiste kolom, maar zou het menu erg lang zijn dan drukt dat het form heel ver naar beneden.

P.S. ik weet dat in dit geval "clear: both" voor het form niet zoveel nut heeft, maar denk je in dat erboven een plaatje een float heeft in een paragraaf.
Gewijzigd op 22/02/2013 12:12:28 door Erwin H
 
Wouter J

Wouter J

22/02/2013 12:36:18
Quote Anchor link
Het kan natuurlijk aan het feit liggen dat ik nu verplicht gebruik maak van IE, maar ik zie geen problemen: http://jsbin.com/uqirex/4/watch
 
Erwin H

Erwin H

22/02/2013 12:45:30
Quote Anchor link
Tot je die lange text weghaalt....
 
Wouter J

Wouter J

22/02/2013 13:25:52
Quote Anchor link
Dan heb ik nog steeds geen problemen? http://jsbin.com/uqirex/5/watch
Gewijzigd op 22/02/2013 13:44:15 door Wouter J
 
Erwin H

Erwin H

22/02/2013 13:56:49
Quote Anchor link
Zowel in FF als in IE (andere browsers heb ik hier niet) komt de input nu onder het menu uit. Nog wel in de juiste kolom (dus niet onder de linker kolom), maar het element wordt helemaal naar beneden gedrukt. Plaats maar eens 10 extra li items in het menu, dan zie je het form naar beneden schuiven.
 
Wouter J

Wouter J

22/02/2013 14:07:49
Quote Anchor link
Oh, nu zie ik het. Een tijdelijke oplossing is om dan clear:right; te gebruiken, maar ik weet niet of dat overal goed werkt.
 
Erwin H

Erwin H

22/02/2013 14:12:00
Quote Anchor link
Hmm, deels natuurlijk maar. Dat zou dan namelijk betekenen dat ik geen foto's aan de linkerkant kan hebben staan binnen een tekst.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.