Javascript-форум (https://javascript.ru/forum/)
-   (X)HTML/CSS (https://javascript.ru/forum/xhtml-html-css/)
-   -   Ширина содержимого (https://javascript.ru/forum/xhtml-html-css/13009-shirina-soderzhimogo.html)

decadent 12.11.2010 15:25

Ширина содержимого
 
Есть DIV. В нем <h3>, у которого "width: auto", и он растягивается в соответствии с содержимым. И несколько <p>, которые располагаются под <h3>. И проблема в том, что когда я им выставляю width: auto, то они растягиваются до той ширины, которая выставлена заголовком. А мне нужно, чтобы их ширина зависела от их содержимого.

Как это реализовать? Подскажите пожалуйста.

vladlen 12.11.2010 16:25

<p> - block элемент и всегда растягивается на всю ширину

Skipp 12.11.2010 16:30

decadent,
Зачем вам это???

Попробуйте заместо <p> использовать <span>

decadent 12.11.2010 16:48

Skipp,

Все равно растягивается на всю ширину. Мне нужно чтобы элементы располагались в столбец. Соответственно я ставлю им display: block. И <span> тоже получается растянут.

ksa 12.11.2010 22:10

Цитата:

Сообщение от decadent
я ставлю им display: block.

Потому и растягиваются... :) Какой же это после этого спан? Только одно название...

Картинкой че ли покажи что нужно...

Иваннн 13.11.2010 11:19

decadent,
Я не знаю как в других браузерах, а в IE8 задай width заведомо меньше чем требует содержимый контент. В этом случае все пробелы в тексте делай &nbsp, либо задай соответствующее свойвство noWrap (какое значение на память не помню), а то текст будет переносится на строчку ниже пока ширина не станет равной самому длинному слову.
Или второй вариант, опять же гарантирую только раборту в ie8 :сделай p position:absolute, top, left, bottom, right, width должны быть auto, следующему элементу в HTML коде назначь margin-top равным высоте элемента позиционируемых элементов. Этот вариант имеет тоже свои недостатки-максимальная ширина p болше ширины содержащего элемента и др.

vladlen 13.11.2010 13:52

Цитата:

Сообщение от Иваннн
Я не знаю как в других браузерах

Офигенный совет!
decadent, вы задачу описат можете, ничего не понятно что хотите сделать

decadent 13.11.2010 17:28

Цитата:

Сообщение от vladlen (Сообщение 78993)
вы задачу описат можете, ничего не понятно что хотите сделать

Есть <div> display: inline-block; position: relative; float: left; margin-top: 10px; margin-left: 10px;

В нем заголовок <h3> position: relative; display: block; В нем соответственно надпись, которая и задает ширину содержимого h3 и div.
При нажатии на заголовок загружается меню: несколько <span> друг под другом в одном столбце. Они тоже попадают в <div> где <h3> и растягиваются до ширины заголовка. Потому что чтобы они были каждый, под предыдущим им нужно выставить display: block. Я сделал так, что запихнул все span в отдельный div, и теперь у них ширина, как у самого широкого span.

Можно ли сделать так, чтобы у каждого из них ширина была по содержимому и все они были в столбец?

ksa 13.11.2010 21:24

decadent, вместо корявого описания просто сделай тестовый хтмл-файл, а его "внутренности" выложи тут.
Покажи картинкой что хочешьполучить в итоге... Вроде не сложно? :)

float 15.11.2010 00:23

Цитата:

Можно ли сделать так, чтобы у каждого из них ширина была по содержимому и все они были в столбец?
<br /> tag may be?

decadent 15.11.2010 17:12

Цитата:

Сообщение от float (Сообщение 79288)
<br /> tag may be?

Или так. Я понимаю) Меня интересовал способ css.

Всем спасибо.

Иваннн 16.11.2010 15:58

Я так понял, решения вопроса ты сдесь не получил?

Иваннн 16.11.2010 16:00

Цитата:

Сообщение от Иваннн
сдесь не получил

Сори за орфоргафию.

ksa 16.11.2010 16:39

Таки и тестового примера мы не увидили... Одни пространные попытки "объяснить".

decadent 16.11.2010 16:54

Цитата:

Сообщение от Иваннн (Сообщение 79500)
Я так понял, решения вопроса ты сдесь не получил?

Как это сделать средствами исключительно CSS - нет. Но в целом проблема решена.

ksa - ты один кто не понял.

subzey 16.11.2010 18:21

<style type="text/css">
	#wrapper {display: inline-block; zoom: 1; overflow: hidden; border: dashed 1px}
	#wrapper p {
		clear: left;
		float: left;
		background: #ffdd88;
	}
</style>
<div id="wrapper">
	<h2>Сказка про попа и его страшную злую и коварную собаку</h2>
	<p>У попа была собака,</p>
	<p>Он ее любил</p>
	<p>Она съела кусок мяса,</p>
	<p>Он ее убил,</p>
	<p>В землю закопал,</p>
	<p>Надпись написал:</p>
	<p><b>Fatal error</b>: out of memory (tried to allocate 1024 bytes) in <b>eval'd code</b> at <b>line 7</b></p>
</div>

decadent 17.11.2010 17:04

subzey,

Спасибо. То, что нужно.


Часовой пояс GMT +3, время: 18:52.