Другие языки программирования и технологии

Как 2 div можно поставить в одну строку не используя float?

не используя float потому что если использовать float , то внешний блок, который включает в себя эти2 не разширяеться в зависимости от внутренних
Валерий Свист
Валерий Свист
1 402
1) вариант: display: inline-block; для внутренних блоков. для поддержки IE6-7 так (звездочка — хак только для IE6-7, которые не поддерживают display: inline-block):
display: inline-block; *display: inline; zoom: 1;
если нужно, чтобы родительский блок по ширине стал равен двум внутренним блокам, то ему прописать то же самое (display: inline-block; *display: inline; zoom: 1; ). по высоте и так будет все ок.
при этом надо учитывать, что любые пробелы между элементами будут восприниматься как символ пробела между строчными элементами, и если написать html так:
<div>
<div>
</div>
<div>
</div>
</div>

то будут промежутки между блоками, а если вот так, то их не будет:

<div><div></div><div></div></div>

можно указать нулевые размеры line-height и font-size для родительского блока, а во внутренних восстановить нужные размеры, тогда код можно писать как угодно.

2) добавить float: и родительскому блоку тоже — в этом случае его ширина будет равна ширине элементов с float внутри него (если иное не указано)

3) добавить элемент c clear: both; после внутренних блоков, но по ширине родительский блок не уменьшится до размеров внутренних блоков. (если не использовать один из вариантов выше display: inline-block; или float для родительского блока и не задать размеры блоку с clear: both; ). по высоте все будет ок.
Алексей Федоров
Алексей Федоров
60 969
Лучший ответ
сделать им display: inline?
Руслан Мусин
Руслан Мусин
60 415
Валерий Свист это не то. нужно чтоб один блок был справа другой слева, когда дисплей инлайн, тогда они строкой делаються