tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
5
ZUGRIFFE
679
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von BlackCoffee
    BlackCoffee BlackCoffee ist offline Mitglied Bronze
    Registriert seit
    Jan 2004
    Ort
    Lüneburg
    Beiträge
    25
    Hallo Community,

    ich habe einen Container der keine feste Breite hat. Dieser soll unendlich viele gefloatete Divs mit fester Breite ein einer Reihe aufnehmen (siehe soll-zustand.png).

    Leider werden momentan die Divs am Ende des Bildschirms / Viewports in die nächste Zeile gebrochen (siehe ist-zustand.png).

    Code :
    1
    2
    3
    4
    
    <style type="text/css">
        #gruen {background-color:#c9f0cf; height:700px;}
        .orange {background-color:#ffb400; width:500px; margin:5px; float:left;}
    </style>
    HTML-Code:
    <div id="gruen">
        <div class="orange">Orange 1</div>
        <div class="orange">Orange 2</div>
        <div class="orange">Orange 3</div>
        <div class="orange">Orange 4</div
    </div>
    Hat jemand eine Idee? Ich wäre sehr dankbar!
    Miniaturansicht angehängter Grafiken Miniaturansicht angehängter Grafiken Divs sollen im Container nicht umbrechen...-soll-zustand.png   Divs sollen im Container nicht umbrechen...-ist-zustand.png  

    Geändert von BlackCoffee (13.01.11 um 16:20 Uhr)
     
    Kaffee bitte - SCHWARZ!

  2. #2
    Avatar von hela
    hela hela ist gerade online Mitglied Smaragd
    tutorials.de Premium-User
    Registriert seit
    Oct 2004
    Beiträge
    1.123
    Hallo,

    normalerweise darf man in einem HTML-Dokument ein ID-Attributnamen nur einmal vergeben. Das ID-Attribut "orange" taucht bei dir viermal auf - daraus müsstest du ein Klassenattribut machen.

    Der DIV-Block grün hat keine Breitenangabe. Dafür sind die Blöcke, die dort rein sollen, jeweils 500px breit. Eine Auspolsterung von links und rechts jeweils 5px mitgerechnet, passen die vier "orange"-Blöcke dort also rein, wenn es ein Vorfahrenelement mit einer Breite von 2040px und größer gibt.

    Ansonsten könntest du die overflow-Eigenschaft verwenden.
     

  3. #3
    Avatar von BlackCoffee
    BlackCoffee BlackCoffee ist offline Mitglied Bronze
    Registriert seit
    Jan 2004
    Ort
    Lüneburg
    Beiträge
    25
    Das mit der Klasse habe ich schonmal korrigiert. Vielen Dank dafür!

    Ich möchte meinem grünen Container keine feste Breite geben. Der Container soll unendlich viele orangene Divs aufnehmen können quasi in der Breite mitwachsen.

    Ich habe overflow:visible angewendet, leider ohne Erfolg. Overflow funktioniert glaub ich nur wenn man eine feste Größe hat, die ich aber nicht haben möchte, zumindest nicht in der Breite des grünen Containers.
    Geändert von BlackCoffee (13.01.11 um 16:34 Uhr)
     
    Kaffee bitte - SCHWARZ!

  4. #4
    Avatar von Anna Bolika
    Anna Bolika Anna Bolika ist offline Mitglied Silber
    Registriert seit
    Jan 2011
    Beiträge
    75
    Also ganz ohne irgendeine Definition eines irgendwie unendlich breiten Bildschirms wird es in meinen Augen nicht gehen. Wie wäre es damit. Klappt mit Firefox4b8 und IE8. Du kannst den body ja noch breiter machen, wenns sein muss.

    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
    
     
    <style type="text/css">
        body { width: 2000px;}
        #gruen {background-color:#c9f0cf; height:700px;}
        .orange {background-color:#ffb400; height: 200px; width:200px; margin:5px; float:left; display: block;}
    </style>
    </head>
     
    <div id="gruen">
        <div class="orange">Orange 1</div>
        <div class="orange">Orange 2</div>
        <div class="orange">Orange 3</div>
        <div class="orange">Orange 4</div>
     
        <div class="orange">Orange 1</div>
        <div class="orange">Orange 2</div>
        <div class="orange">Orange 3</div>
        <div class="orange">Orange 4</div>
     
        <div class="orange">Orange 1</div>
        <div class="orange">Orange 2</div>
        <div class="orange">Orange 3</div>
        <div class="orange">Orange 4</div>
     
        <div class="orange">Orange 1</div>
        <div class="orange">Orange 2</div>
        <div class="orange">Orange 3</div>
        <div class="orange">Orange 4</div>
     
     
    </div>
     

  5. #5
    Avatar von hela
    hela hela ist gerade online Mitglied Smaragd
    tutorials.de Premium-User
    Registriert seit
    Oct 2004
    Beiträge
    1.123
    Zitat Zitat von Anna Bolika Beitrag anzeigen
    Also ganz ohne irgendeine Definition eines irgendwie unendlich breiten Bildschirms wird es in meinen Augen nicht gehen. [/CODE]
    Hallo,

    sicherlich meinst du "ohne irgendeine Definition eines endlich breiten" Vorfahrenelements.
    Genau so ist es und so geht es auch:
    HTML-Code:
    <div id="wrapper">
      <div id="gruen">
        <div class="orange">Orange 1</div>
        <div class="orange">Orange 2</div>
        <div class="orange">Orange 3</div>
        <div class="orange">Orange 4</div>
      </div>
    </wrapper>
    Code css:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
    #wrapper {
      width: 40em;
      overflow: hidden;
    }
    #gruen {
      width: 2050px;
      height: 700px;
      background-color: #c9f0cf;
    }
    .orange {
      float: left;
      width: 500px;
      margin: 5px;
      background-color: #ffb400;
    }

    Kleiner Nachtrag:
    Vielleicht ist dieser Thread auch interessant, insbesondere der Beitrag #6 von Maik.
    Geändert von hela (13.01.11 um 17:17 Uhr) Grund: overflow-Eigenschaft im CSS nachgetragen
     

  6. #6
    Avatar von BlackCoffee
    BlackCoffee BlackCoffee ist offline Mitglied Bronze
    Registriert seit
    Jan 2004
    Ort
    Lüneburg
    Beiträge
    25
    Zitat Zitat von Anna Bolika Beitrag anzeigen
    Also ganz ohne irgendeine Definition eines irgendwie unendlich breiten Bildschirms wird es in meinen Augen nicht gehen.
    Die Lösung ohne eine width-Angabe lautet wie folgt:

    #gruen {background-color:#c9f0cf; height:700px; white-space:nowrap;}
    .orange {background-color:#ffb400; width:500px; margin:5px; display:inline-block;}

    Ganze ohne float. Aber ob das insgesamt eine gute Lösung ist, wird sich noch zeigen.
     
    Kaffee bitte - SCHWARZ!

Ähnliche Themen

  1. Mehrere Divs sollen sich Breite teilen
    Von edvXpert im Forum Javascript & Ajax
    Antworten: 4
    Letzter Beitrag: 02.10.09, 14:43
  2. Antworten: 1
    Letzter Beitrag: 16.09.09, 09:44
  3. Höhe: 100% und die divs sollen wachsen
    Von Chumper im Forum CSS
    Antworten: 2
    Letzter Beitrag: 27.04.07, 14:04
  4. Antworten: 9
    Letzter Beitrag: 10.11.06, 17:11
  5. Antworten: 7
    Letzter Beitrag: 18.11.05, 07:51

Stichworte