Reputation: 547
I have a container that has many children and grandchildren. My goal is to have the container's width match it's children/grandchildren. (CSS at the bottom)
The easy version looks like this, a parent with some children and it grows/shrinks dependent on the children: http://jsfiddle.net/6qWg6/5/
<div id="container">
<div class="child">child 1</div>
<div class="child">child 2</div>
<div class="child">child 3</div>
<div class="child">child 4</div>
</div>
The difficulty arises when I add grandchildren: http://jsfiddle.net/6qWg6/4/
<div id="container">
<div class="child">child 1</div>
<div class="child">child 2</div>
<div class="child">child 3</div>
<div class="child">child 4</div>
<div id="child_container">
<div class="child">child 1</div>
<div class="child">child 2</div>
<div class="child">child 3</div>
<div class="child">child 4</div>
<div class="child">child 5</div>
<div class="child">child 7</div>
<div class="child">child 8</div>
<div class="child">child 9</div>
<div class="child">child 10</div>
</div>
</div>
When I add grandchildren the container goes to a width of 100%, which I don't want. How can I add grandchildren while still having my containers width match it's descendants?
#container {
float: left;
border: 1px solid blue;
display: inline-block;
padding: 5px;
}
#child_container {
float: left;
border: 1px solid red;
padding: 5px;
}
.child {
width: 100px;
float: left;
border: 1px solid black;
}
Upvotes: 0
Views: 231
Reputation: 1042
There you go, I updated your fiddle
CSS
#container {
float: left;
border: 1px solid blue;
display: inline;
padding: 5px;
}
#child_container {
display: inline;
}
.child {
width: 100px;
float: left;
border: 1px solid black;
display: table-cell;
}
HTML
<div id="container">
<div class="child">child 1</div>
<div class="child">child 2</div>
<div class="child">child 3</div>
<div class="child">child 4</div>
<div id="child_container">
<div class="child">child 1</div>
<div class="child">child 2</div>
<div class="child">child 3</div>
<div class="child">child 4</div>
<div class="child">child 5</div>
<div class="child">child 7</div>
<div class="child">child 8</div>
<div class="child">child 9</div>
<div class="child">child 10</div>
</div>
</div>
Upvotes: 1