Как правильно задать ширину блока в CSS?
218 сообщений
#14 лет назад
День добрый, коллеги!Недавно решил освоить верстку div'ами. Вот задался таким вопросом и что-то пока никак. Код примерно такой:
<h1>заголовок</h1>
<div><img>подпись подпись подпись</div>
<p>статья статья статья статья статья статья</p>
<p>статья статья статья статья статья статья</p>
DIV установлено float:right и он по логике является врезкой в текст статьи. IMG внутри блока имеет clear:both. В блоке - картинка + под ней подпись к картинке. Всё работает, кроме того, что DIV занимает места больше, чем хотелось бы - он старается написать "подпись подпись подпись" в одну строку, а мне хочется, чтобы он (DIV) автоматически "сжимался" до размера картинки, которая в нем находится, и текст соответственно писался в скольконужно строчек.
Формулируя четко вопрос: как сделать так, чтобы DIV имел ширину, минимально-необходимую для отображения его контета?
P.S. Таблицами это легко делается так
<tr>
<td width="100%">статья статья статья</td>
<td><img><br>подпись подпись подпись</td>
</tr>
10 сообщений
#14 лет назад
Если не ошибаюсь, проблему можно решить аналогичным образом, только вместо <td width="100%">
нужно написать так:
<div style="width: 100%">
вроде должно помочь

1 сообщение
#14 лет назад
Надозадать размеры блоку ! <div style="width: 100px; "> (вместо 100 можно любое значение ставить )
3195 сообщений
#14 лет назад
А так:
<h1>заголовок</h1>
<div float=right><img>подпись подпись подпись</div>
<div float=left width=100%><p>статья статья статья статья статья статья</p>
<p>статья статья статья статья статья статья</p></div>
<div clear=both></div>
?
5330 сообщений
#14 лет назад
Цитата ("FaustMix"):Надозадать размеры блоку ! <div style="width: 100px; "> (вместо 100 можно любое значение ставить )
убивать бы за такое

правильно: надо присвоить стиль/класс и задать ему размеры.
58 сообщений
#14 лет назад
Если отвечать только на четко сформулированный вопрос, то вместо DIV использовать SPAN, это по умолчанию инлайн элемент и он будет занимать ширину по размерам внутреннего контента.Но судя по задачи, если в елементе есть флоат, то елемент становиться блочным...
Можно на DIV установить свойство display: inline-block; - должно помочь...
218 сообщений
#14 лет назад
FaustMix, Решение очевидное, но это противоречит идеологии CSS
AlekartRu,
Товарищ, а сначала протестировать?
ArtPro,
Это да, но вопрос - КАКИЕ размеры, если ширина картинки в общем случае все время разная
5330 сообщений
#14 лет назад
Цитата ("TigerDesign"):Это да, но вопрос - КАКИЕ размеры, если ширина картинки в общем случае все время разная
а какой размер надо?
Если у Вас размер картинки везде разный, то это это проблемы дизайнера (его непрофессионализм)
Если мы говорим про сайт в котором наполнением занимается "абы кто", то надо делать сетку и все картинки/тексты приводить в соответствие с сеткой.
Т.е. мы имеем дело с ошибками проектирования и попыткой придумать "костыль".
218 сообщений
#14 лет назад
Цитата ("ArtPro"):Т.е. мы имеем дело с ошибками проектирования и попыткой придумать "костыль".
Не-не-не, позвольте с Вами не согласиться

Вобщем, судя по всему, к сожалению, пока что самым "подходящим" решением будет брать из базы картинку, брать её размер и исходя из этого уже прописывать ширину каждого отдельного блока в style="". Как ни прискорбно

5330 сообщений
#14 лет назад
Цитата ("TigerDesign"):но вот "контент" статьи - тут может быть что угодно (в разумных пределах, конечно).
вот как раз и пропишите разумные пределы.
возьмите любой проф дизайн - в контенте будут 1-2 типоразмера картинок для вставки.
Цитата ("TigerDesign"):
Да и разные размеры картинок по горизонтали внутри статьи придадут статье "живость" и читать её будет чуть-чуть увлекательнее.
Женская грудь делают сайт более привлекательным для мужской аудитории... и статью читать интереснее.
"живость" - это как раз термин из области "поиграйте со шрифтами".
649 сообщений
#14 лет назад
А не прискорбно предполагать, что div с какого-то перепуга должен придумать себе, что он должен ограничиваться шириной картинки, а не, например, текста?Или у картинки есть приоритет для div'а?
218 сообщений
#14 лет назад
penguin, Я не совсем понимаю, при чем тут "прискорбно", честно говоря.
Если Вы обратили внимание - вопрос стоял не "как сделать див по ширине картинки", а "как сделать так, чтобы див занимал минимально-необходимую ширину". DIV должен "придумать себе" сжаться насколько возможно, чтобы контент, который он содержит не вылазил за его границы. Если внутри будет слово, которое по ширине больше, чем картинка - значит на ширину самого длинного слова.
Ваш сарказм неуместен.
5330 сообщений
#14 лет назад
Цитата ("TigerDesign"):DIV должен "придумать себе" сжаться насколько возможно
Он НИЧЕГО не должен придумывать.
Если бы все элементы сами придумывали как им лучше располагаться, то число самоубийств среди верстальщиков было бы чуть боле чем 100%
23 сообщения
#14 лет назад
TigerDesign, Вы или задавайте ширину, как уже мыло сказано выше или просто float делайте:
<img style="float: left;" src="/path/"> Lorem ipsum dolor sit amet, altera sapientem ne usu, te audire aeterno eum, ea phaedrum tacimates tractatos quo.
Если оба варианта Вас не устраивают - бомбите таблицами.