2013-03-17 6 views
4

У меня есть контейнер div и 3 внутренних divs, которые помещают их все в одну строку. Боковые divs имеют фиксированную ширину, и я хочу авто ширину для среднего div. Это мой код:HTML div auto width

<div style="width: auto; height: 25px; position: relative; float: right;"> 
    <div style="width: 25px; height:25p; float: right; position: relative; display:inline-block;"> 
    <div style="width: auto; height: 25px; position: relative; float: right; display:inline-block;"></div> 
    <div style="width: 25px; height:25p; float: right; position: relative; display:inline-block;"> 
</div> 

... но средний div не занимает пробелов.

примечание: я не хочу, чтобы контейнер div имел фиксированный или процентный размер.

Какое решение?

+0

какая именно проблема? – caramba

+0

Средний div не занимает свободное пространство между двумя в сторону divs, даже когда я делаю его шириной 100%. – JalalJaberi

+0

(добавьте @ и мое имя, если вы напишете комментарий, чтобы я его увидел быстрее) попробуйте закрыть закрытые divs как Christoffer sayd! также высота: 25p; никогда не будет работать. вы должны выдержать высоту: 25 пикселей; – caramba

ответ

4

Вы не закрываете первый и последний div внутри контейнера. Вам это нужно. Я сделал jsFiddle, я думаю, что это то, что вам нужно. Вот код:

<style> 
div { 
    width: auto; 
    height: 25px; 
    position: relative; 
    float: right; 
} 
div div { 
    float: left; 
    display:inline-block; 

} 
div div:first-child { 
    float: left; 
    width: 25px; 
} 
div div:last-child { 
    width: 25px; 
    float: right; 
} 
</style> 

<div> 
<div>1</div> 
<div>This is the second and middle div.</div> 
<div>3</div> 
</div> 
+0

Я не хочу, чтобы средний div менял свою ширину с содержанием. Это зависит от ширины контейнера. Другими словами, средний div должен заполнять свободное пространство в контейнере div. – JalalJaberi

+1

Нет свободного места, поскольку вы не указали ширину контейнера. Если вы сделаете это (т.е. 100%), вы можете сделать средний контейнер заполнить это пространство. Например: http://jsfiddle.net/qC5bk/3/ –

+0

Я изменил значение ширины контейнера на 100%, но средний div не занимает свободное пространство :( – JalalJaberi

0

Я столкнулся с тем же вопросом раньше. Я провел много времени, и, к счастью, это было простое исправление:

<style> 
div1{ 
float: left; 
width: 200px;   /* ...Or whatever fixed width you want */ 
} 

div2{ 
overflow: hidden; /* This will automatically set this div's width to the remainder */ 
} 
</style> 

Надеюсь, что это поможет.