Как автоматически настроить ширину div с помощью CSS?

#css #html #width

#css #HTML #ширина

Вопрос:

Рассмотрим следующий пример:

HTML:

 <div class="wrapper">
    <div class="left">Some text here</div><div class="right">Hello Stack Overflow</div>
</div>
  

CSS:

 .wrapper {
    border: 1px solid black;
    width: 400px;
}
.left {
    border: 1px solid green;
    display: inline-block;
}
.right {
    border: 1px solid red;
    display: inline-block;
    float: right;
}
  

Я хотел бы сделать ширину зеленого div как можно больше, в соответствии с шириной красного. Ширина красной области div может варьироваться в зависимости от div содержимого. Так, например, если ширина красного div равна 150px, ширина зеленого должна быть 250px. Это всегда должно быть правдой:

 green div width   red div width = 400px
  

Как я мог бы добиться этого с помощью CSS?

Пожалуйста, никакого Javascript…

Ответ №1:

Как сказал Сандип ранее, заставьте зеленый div занимать как можно больше места.

 .wrapper {
    border: 1px solid black;
    width: 400px;
    display:table;
}
.left {
    border: 1px solid green;
    display: table-cell;
    width: 100%;
}
.right {
    border: 1px solid red;
    display: table-cell;
}
  

Обратите внимание, что divs-as-tables не поддерживается IE7 и ниже.

Ответ №2:

сделайте так, как вы хотитеhttp://jsfiddle.net/sandeep/eGphW

 .wrapper {
    border: 1px solid black;
    width: 400px;
    display:table;
}
.left {
    border: 1px solid green;
    display: table-cell;
}
.right {
    border: 1px solid red;
    display: table-cell;
}
  

вы можете использовать div в качестве таблицы.

Комментарии:

1. Не совсем. В вашем примере красный div имеет дополнительный пробел справа. Ширина правого div должна быть как можно меньше (а ширина зеленого div должна быть остальной).