Адаптируйте ширину 3-го блока подряд с помощью CSS

0

Я просто пришла к проблеме, о которой я сначала подумал легко. Я просто не вижу здесь простого решения.

У меня есть:

__________________________________
|           parent block         |
| block1 | block2 |   textblock  |
----------------------------------

Родительский блок имеет фиксированную минимальную ширину, но в остальном адаптируется к ширине браузера. block1 и block2 имеют фиксированную ширину. textblock имеет текст внутри, который должен содержать оставшееся пространство, доступное здесь... Теперь проблема в том, что содержимое текстового блока может быть слишком большим для одной строки, поэтому я хотел бы, чтобы он отображал несколько строк внутри текстового блока. Однако, поскольку в настоящее время у меня только есть позиции с использованием встроенных блоков, текстовый блок просто переходит в следующую строку.

разыскивается:

__________________________________
|           parent block         |
|        |        |some larger   |
| block1 | block2 |text that     |
|        |        |wraps arouind |
----------------------------------

но получил:

__________________________________
|           parent block         |
| block1 | block2 |              |
|some larger text that wraps     |
|around                          |
----------------------------------

Я думаю, что слепой стол разрешил бы это, но я действительно стараюсь избегать таких вещей...

Минималистский пример, вероятно, не нужен, но здесь:

<!DOCTYPE html><html><head><style type='text/css'>
h2.wrapper{width:50%;min-width:200px;background-color:#aff;}
div.block1{vertical-align:middle;width:50px;background-color:#faf;display:inline-block;height:50px;}
div.block2{vertical-align:middle;width:50px;background-color:#ffa;display:inline-block;height:50px;}
div.textblock{width:auto;background-color:#afa;display:inline-block;vertical-align:middle;}
</style></head><body><h2 class='wrapper'>
<div class='block1'>block1</div>
<div class='block2'>block2</div>
<span class='textblock'>some larger text that wraps around</span>
</h2></body></html>
Теги:
tablelayout

2 ответа

1

Вот вам JSFiddle.

Магический атрибут:

float:left;

Надеюсь, это именно то, что вы хотели.

  • 0
    Мне нравится ваш ответ лучше, чем мой, для протокола.
  • 0
    Благодарю. ;) Надеюсь, @Julian тоже понравится.
Показать ещё 2 комментария
1

Что ж, для начала я немного расставил ваш код. Я также заметил, что div.textblock не присваивал атрибуту class= 'textblock', потому что textblock был span, а не div.

<!DOCTYPE html>
<html>
<head>

<style type='text/css'>
h2.wrapper{width:50%;min-width:200px;background-color:#aff;}
.block1{vertical-align:middle;width:10%;background-color:#faf;display:inline-block;height:50px;}
.block2{vertical-align:middle;width:10%;background-color:#ffa;display:inline-block;height:50px;}
.textblock{width:30%;background-color:#afa;display:inline-block;vertical-align:middle;}
div.wrap{display:inline-block;white-space:wrap;}
</style>

</head>
    <body>
        <h2 class='wrapper'>
            <div class="wrap">
                <div class="block1">block1</div>
                <div class="block2">block2</div>
                <span class="textblock">some larger text that wraps around</span>
            </div>
        </h2>
    </body>
</html>

Я завернул все это в div класса.wrap, чтобы все отображалось в одном встроенном блоке, а не в своем собственном. Не уверен, что это даже имеет значение, но я OCD. То, что в основном делает отображение текстового блока в виде обертки, составляет 30% ширины. Поскольку ваш основной div составляет 50% веб-страницы, вам просто нужно сделать, чтобы ваши внутренние div составляли до 50%.

Надеюсь это поможет!

  • 0
    Спасибо за ваш комментарий! проблема в том, что у меня есть кнопки, селекторы и прочее в первых двух кнопках, так что фиксированная ширина была бы действительно хорошей ... оставшееся место ... Но спасибо за исправление css-проблемы
  • 0
    А ну понятно. У меня проблема с не думать заранее, ха-ха. Нет проблем с CSS, хотя! :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню