Как сделать 2 деления встроенными, с шириной в зависимости от содержимого

У меня есть бар, разделенный на 2 части, одна содержит текст, вторая - это какие-то панировочные сухари. Оба элемента должны быть встроены.

Хитрость в том, что левый div должен иметь гибкий контент, в то время как правый должен подгоняться влево к левому:

----------------------------------------------------------------------------------
|long text long text long text long text| <...breadcrumb navigation...>          |
----------------------------------------------------------------------------------

когда экран укорачивается, например, до ширины 700px, оставленный div должен занять, скажем, 30% полосы. Если текст слишком длинный, его следует обрезать переполнением:hidden:

-------------------------------------------------------
|long text long text...| <...breadcrumb navigation...>|
-------------------------------------------------------

Если текст короткий, он должен выглядеть так:

----------------------------------------------------------------------------------
|short text| <...breadcrumb navigation...>                                       |
----------------------------------------------------------------------------------

И при изменении размера экрана ширина 30% не понадобится:

-------------------------------------------------------
|short text| <...breadcrumb navigation...>            |
-------------------------------------------------------

Я пробовал несколько подходов, включая display:table-cell, но результат был:

----------------------------------------------------------------------------------
|short text                             | <...breadcrumb navigation...>          |
----------------------------------------------------------------------------------

Последний, который почти работал, был float: left, но в этом случае переполнение: скрытый не работал, текст либо выдвигал весь экран окна макета, либо переходил к следующей строке.

У кого-нибудь есть идеи, как это можно решить самым простым способом, желательно без js? Спасибо

1 ответ

Решение

Переместите свой левый div влево, установите максимальную ширину и установите пустое пространство для nowrap.

.left, .right { overflow:hidden; white-space:nowrap; }
.left { max-width:30%; float:left; background:green; }
.right { background:red; }
<div class="left">asdf asdfasdf asdfasdf asdfasdf asdfasdf asdfsadfa asdfasdf asdfasdfasdfasdfasdf asdfasdfasdfasdfasdfas as</div>
<div class="right">asdfasfasdfasdfsafdsadf</div>

Другие вопросы по тегам