2017-08-19 1 views
0

hat Also habe ich eine Wrapper div, die ich möchte die Breite des Inhalts in sein. Ich habe gelesen, dass der beste Weg das zu tun ist, es zu machen display: inline-block; Das Problem ist, das funktioniert nicht, wenn ich eine Reihe von Inline-Block-Elementen innerhalb der div habe. Irgendeine Möglichkeit, das zu beheben?Outer Div die Breite des Inhalts, wenn es Inline-Block-Elemente innerhalb

JSFiddle

HTML

<div class="wrapper"> 
    <div class="inner-wrap"> 
    <h1>Heading</h1> 

    <div class="item"> 
     <h2>Item 1</h2> 
     <p>Details</p> 
    </div> 
    <div class="item"> 
     <h2>Item 1</h2> 
     <p>Details</p> 
    </div> 
    <div class="item"> 
     <h2>Item 1</h2> 
     <p>Details</p> 
    </div> 
    <div class="item"> 
     <h2>Item 1</h2> 
     <p>Details</p> 
    </div> 
    </div> 
</div> 

CSS

.wrapper { 
    background-color: white; 
    width: 100%; 
    display: block; 
} 

.inner-wrap { 
    display: inline-block; 
    border: 1px solid black; 
} 

.item { 
    display: inline-block; 
    background-color: red; 
    margin: 20px; 
    padding: 30px; 
} 
+0

Try-Display zu verwenden: flex – Amit

+0

@Amit, die nicht –

Antwort

0

Mit inline-flex statt inline-block die innere Hülle Skala auf seine Kinder machen:

.inner-wrap { 
    display: inline-flex; 
    border: 1px solid black; 
} 
+0

funktionierten, die alle Elemente auf einer Zeile. –

+0

Sie können den Container so einrichten, dass seine untergeordneten Elemente mit 'flex-wrap: wrap;' umschlossen werden. Wenn Sie mehr Kontrolle über die Anzahl der Elemente pro Zeile haben möchten, bearbeiten Sie ihre 'flex'-Eigenschaft, d. H.' Flex-grow', 'flex-shrink' und' flex-basis'. CSS-Tricks bietet eine [gute Einführung in Flex-Boxen] (https://css-tricks.com/snippets/css/a-guide-to-flexbox/), wenn Sie mehr erfahren möchten. – Mark

+0

Scheint immer noch nicht zu funktionieren: https://jsfiddle.net/bq37actj/10/ –

0

Meinst du, du willst .inner-wrap die Breite der breitesten .item sein? Wenn ja, dann .item {display: block; width: auto;}

Verwandte Themen