Вы могли бы добиться этого с помощью таблиц CSS:
Example Here
Просто установите родительский элемент display
к table
, и добавить table-layout: fixed
. Установите display
элементов детей на table-cell
и дайте им ширину 100%
. При этом они будут жидкостно заполнять оставшуюся область.
<div class="parent">
<div class="child"></div>
<div class="child fixed"></div>
<div class="child"></div>
</div>
.parent {
display: table;
table-layout: fixed;
width: 100%;
}
.parent > .child {
display: table-cell;
height: 100px;
width: 100%;
}
.parent > .child.fixed {
width: 300px;
}
В качестве альтернативы, если вы хотите, чтобы избежать таблиц CSS, вы можете также использовать calc()
установить ширину элементов. В этом случае width: calc((100% - 300px)/2)
будет работать.
Example Here
.parent > .child {
height: 100px;
width: calc((100% - 300px)/2);
display: inline-block;
vertical-align: top;
}
.parent > .child.fixed {
width: 300px;
}
Просто browser support для calc()
во внимание.
@John .. почему нет? Это по какой-то причине. –
Это взлом, это показывает отсутствие понимания того, как работает CSS. Авторы даже взломали несколько вещей ('vertical-alignment' и' height: 100%; 'не работают корректно большую часть времени), но то, что все работает до IE4/Opera 4, является' float', что и есть люди должны использовать, а не 'display' и' table' hacks. – John
Другими словами: если вы собираетесь потратить время, чтобы помочь людям научить их делать это * правильно *, а не * любым способом. Есть куча причин, по которым я построил свою собственную платформу, но ее можно суммировать в одном: люди не правильно пишут код, особенно когда это очень легко сделать правильно. – John