2016-08-09 33 views
-2

Brauchen Sie Hilfe mit einem Problem, das ich selbst nicht lösen kann.Erhalten Sie divs, um die Linie zu füllen und schieben Sie sich nicht gegenseitig

Ich versuche, ein div zu machen, das ein Menü ist, aber wenn Text zu lang wird, schiebt er die divs nach unten und ich brauche sie, um an Ort und Stelle zu bleiben und stattdessen mehr Höhe zu bekommen.

css:

.menu-item { 
    width: 100%; 
} 

.menu-title { 
    width: 100%; 
    display: block; 
} 
#number { 
    display: inline-block; 
    background: blue; 
    color: #fff; 
} 
#dish { 
    display: inline-block; 
    background: red; 
} 
#price { 
    background: green; 
    display: inline-block; 
} 

.menu-ingredients { 

} 
#ingredients { 

} 

html:

<div class="menu-item"> 
    <div class="menu-title"> 
    <div id="number">23</div> 
    <div id="dish">Souvlaki</div> 
    <div id="price">495 kr</div> 
    </div> 
    <div class="menu-ingredients"> 
    <div id="ingredients">Pizza, hamburger, cucumber, tomato</div> 
    </div> 
</div> 
<div class="menu-item"> 
    <div class="menu-title"> 
    <div id="number">40</div> 
    <div id="dish">RAVIOLI CON PIPIENO DI GRANICHI E RICOTTA AL FINOCCHIO E SALSINA DI ARRAGOSTA 

</div> 
    <div id="price">9000 kr</div> 
    </div> 
    <div class="menu-ingredients"> 
    <div id="ingredients">Ravioli filled with crab and ricotta. Servec with minicucumber and cheese from Gotland. Shrimps toghether with peanuts and pumpkin</div> 
    </div> 
</div> 

See fiddledisplay: inline-block; * Wenn Sie die Geige öffnen und das Fenster zu einer geringeren Breite die divs Ende die Größe, sondern unter jedem andere *

Ist Gibt es eine Möglichkeit, das blaue, rote und grüne div auf derselben Linie zu platzieren und die Höhe stattdessen an den Text anzupassen? Wie im ersten Beispiel

Dank

+0

Willkommen bei Stack-Überlauf zu sehen! Fragen, die Code-Hilfe suchen, müssen den kürzesten Code enthalten, der für die Reproduktion in der Frage selbst erforderlich ist **. Obwohl Sie einen [** Link zu einem Beispiel oder einer Site ** angegeben haben] (http://meta.stackoverflow.com/questions/254428/something-in-my-web-site-or-project-doesnt-work- can-i-just-einfügen-a-link-to-it), sollte die Verknüpfung ungültig werden, würde Ihre Frage keinen Wert für andere zukünftige SO-Benutzer mit dem gleichen Problem haben. –

Antwort

7

Versuchen Sie, diese

.menu-title { 
    width: 100%; 
    display: -webkit-flex; 
    display: flex; 
} 
+0

@ Jonathan, das ist ein Muss lesen https://css-tricks.com/snippets/css/a-guide-to-flexbox/ –

+0

Sie antwortete, bevor ich überhaupt die Frage verstehen konnte ... habe meine upvote x) – Relisora

+0

Wirklich gute Informationen in den Links. Vielen Dank. /* Ich werde lernen * / – Jonathan

0

Flexbox (siehe Kopf in den Wolken ‚s Antwort) ist wahrscheinlich die beste Lösung, aber Sie können auch prüfen, indem ein % width (wie 80%) in #dish so (auch Sie können vertical-align:middle; hinzufügen):

.menu-item { 
 
    width: 100%; 
 
} 
 

 
.menu-title { 
 
    width: 100%; 
 
    display: block; 
 
} 
 
#number { 
 
    display: inline-block; 
 
    background: blue; 
 
    color: #fff; 
 
} 
 
#dish { 
 
    display: inline-block; 
 
    background: red; 
 
    width:80%; 
 
    vertical-align:middle; 
 
} 
 
#price { 
 
    background: green; 
 
    display: inline-block; 
 
} 
 

 
.menu-ingredients { 
 
    
 
} 
 
#ingredients { 
 
    
 
}
<div class="menu-item"> 
 
    <div class="menu-title"> 
 
    <div id="number">23</div> 
 
    <div id="dish">Souvlaki</div> 
 
    <div id="price">495 kr</div> 
 
    </div> 
 
    <div class="menu-ingredients"> 
 
    <div id="ingredients">Pizza, hamburger, cucumber, tomato</div> 
 
    </div> 
 
</div> 
 
<div class="menu-item"> 
 
    <div class="menu-title"> 
 
    <div id="number">40</div> 
 
    <div id="dish">RAVIOLI CON PIPIENO DI GRANICHI E RICOTTA AL FINOCCHIO E SALSINA DI ARRAGOSTA 
 

 
</div> 
 
    <div id="price">9000 kr</div> 
 
    </div> 
 
    <div class="menu-ingredients"> 
 
    <div id="ingredients">Ravioli filled with crab and ricotta. Servec with minicucumber and cheese from Gotland. Shrimps toghether with peanuts and pumpkin</div> 
 
    </div> 
 
</div>

0

versuchen .menu-title { display:flex; }
und #dish { flex-grow: 1; }

fiddle