2010-06-28 1 views
1

У меня есть следующий HTML:Как сделать div настолько широким, как его родной брат, но не шире?

<div class="wrapper"> 
    <div class="label"> 
    foor bar baz 
    </div> 
    <img src="..."> 
</div> 

Да, я знаю, что DIV с классом «ярлык» должен быть ярлык.

Простой вопрос: как я могу обеспечить, чтобы метка всегда была такой же широкой, как и изображение, и никогда не была более широкой? Ширина изображения и содержимого метки неизвестны. Когда содержание метки больше ширины изображения, оно должно перейти к следующей строке.

Прямо сейчас у меня есть «display: inline-block» для обертки, и все отлично выглядит, когда текст подходит к метке. Если текст длиннее, он не сломается, но делает метку длиннее изображения.

Я думаю, что для этого есть простое решение, но я просто не вижу его. Любая помощь ценится!

+1

Он должен быть только элементом метки, если он начерчивает элемент управления формой. – Joey

+0

Я думаю, что это не правильный ответ, поэтому я помещаю его здесь: я думаю, что любая ширина в процентном модуле наследует ширину div отца, поэтому, если вы поместите ширину метки на 100%, она будет такой же широкой, как и отец div. У этого проблемы есть проблемы, поэтому используйте 99%. –

+0

@Oscar Это будет работать, только если у отца div (обертка) указанная ширина. Если это не так, и я установил ширину метки div на 100%, она останется той же величины, как если бы я не установил ширину вообще. (Установка ширины до 90% делает ее на 10% меньше и т. Д.) –

ответ

2

элемент не может быть больше, чем его родительский, поэтому, если вы поместите тег img внутри div, он никогда не будет больше.

<div class="wrapper"> 
    <div class="label"> 
    foor bar baz 
    <img src="..."> 
    </div> 
</div> 
+0

Да, конечно, это правильно. Я полностью удалю лейбл div и просто оставлю все в обертке. Благодаря! –

1

Дайте обоим элементам атрибут width:50%; (или ширина: 49% ;, только чтобы быть в безопасности), что должно сделать трюк.

+0

Я действительно не понимаю. Какие «оба» элемента вы имеете в виду? Как я уже сказал, ширина картинки неизвестна, и я не хочу ее менять. –

+0

Я думаю, что OP предполагает, что вы хотите разделить div верхнего уровня на даже левый и правый секторы, а не выше и ниже секций. – ijw

+2

(И видеть «49%, чтобы быть более безопасным» заставляет меня хотеть причинять вред людям, которые написали IE и ввернули умы поколения веб-дизайнеров.) – ijw