Как не обернуть содержимое div?

html css

189064 просмотра

6 ответа

1166 Репутация автора

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

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

Автор: JamesBrownIsDead Источник Размещён: 09.11.2009 07:24

Ответы (6)


437 плюса

25907 Репутация автора

Попробуй white-space: nowrap;. , ,

Автор: Marek Karbarz Размещён: 09.11.2009 07:26

0 плюса

12635 Репутация автора

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

Вы можете эмулировать свойство 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>
Автор: Mr. Shiny and New 安宇 Размещён: 09.11.2009 08:02

4 плюса

103 Репутация автора

Если вам не нужна минимальная ширина для 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>
Автор: Nicholas Becker Размещён: 09.11.2009 08:49

73 плюса

5904 Репутация автора

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

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

Автор: Chris Nolet Размещён: 10.08.2011 04:51

-2 плюса

1 Репутация автора

Если заставить кнопки оставаться в одной строке, они выйдут за пределы фиксированной ширины 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>

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

Удачи!

Автор: Zoid Размещён: 03.04.2014 01:29

5 плюса

3401 Репутация автора

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

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

Надеюсь, что это помогает кому-то.

Автор: elPastor Размещён: 25.12.2017 03:45
Вопросы из категории :
32x32