Как не обернуть содержимое div? - PullRequest
224 голосов
/ 09 ноября 2009

У меня фиксированная ширина div с двумя кнопками. Если ярлыки кнопок слишком длинные, они переносятся & ndash; одна кнопка остается в первой строке, а следующая кнопка следует за ней, а не рядом с ней.

Как заставить div развернуться так, чтобы обе кнопки были в одной строке?

Ответы [ 6 ]

422 голосов
/ 09 ноября 2009

Попробуйте white-space:nowrap;

72 голосов
/ 10 августа 2011

Комбинация обоих float: left; white-space: nowrap; сработала для меня.

Каждый из них независимо не достиг желаемого результата.

5 голосов
/ 25 декабря 2017

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

Не нужно было играть с max-width, max-height, white-space или чем-то еще.

Надеюсь, это кому-нибудь поможет.

4 голосов
/ 09 ноября 2009

Если вам не нужна минимальная ширина для div и вы действительно не хотите, чтобы div расширялся по всему контейнеру, вы можете перемещать его влево - плавающие div по умолчанию расширяются для поддержки их содержимого, например так:

<form>
    <div style="float: left; background-color: blue">
        <input type="button" name="blah" value="lots and lots of characters"/>
        <input type="button" name="blah2" value="some characters"/>
    </div>
</form>
0 голосов
/ 03 апреля 2014

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

Вот пример:

<div id="parentDiv" style="width: [less-than-what-buttons-need]px;">
    <div id="holdsButtons" style="width: [>=-than-buttons-need]px;">
       <button id="button1">1</button>
       <button id="button2">2</button>
    </div>
</div>

Возможно, вы захотите рассмотреть свойство overflow для порции содержимого вне границы parentDiv.

Удачи!

0 голосов
/ 09 ноября 2009

Если у вашего div фиксированная ширина, он не должен расширяться, потому что вы зафиксировали его ширину. Однако современные браузеры поддерживают свойство CSS min-width.

Вы можете эмулировать свойство min-width в старых браузерах IE с помощью выражений CSS или с помощью автоматической ширины и наличия в контейнере объекта-спейсера. Это решение не элегантно, но может помочь:

<div id="container" style="float: left">
  <div id="spacer" style="height: 1px; width: 300px"></div>
  <button>Button 1 text</button>
  <button>Button 2 text</button>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...