2016-01-29 1 views
1

У меня есть div, который обертывает два других div. Один из них содержит изображение, а другой текст. Изображение с изображением должно отображаться в левой части div, содержащего текст.в divs в обертке div с максимальной шириной рядом друг с другом

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

Независимо от того, что я пытался (float, flex, inline-block), я не смог добиться результата, который будет работать. Я мог бы заставить его работать, пока текст не начнет обертываться. но затем два divs, где все внезапно под друг друга снова.

Если бы кто-то мог дать мне руку здесь, я был бы очень рад.

HTML

<div class="toast" > 
<div class="toastImg"><img style="float:left;margin-left:8px;width:24px" src="http://www.gravatar.com/avatar/09f4f4e7486e3a25f4c4883258fd32d6/?default=&amp;s=80"></div> 
<div class="toastText">blablalsadosaoadblablalsadosaojdoad</div> 
</div> 

CSS

.toast { 
    width:auto; 
    max-width:300px; 
    height:auto; 
    background-color: #383838; 
    color: #F0F0F0; 
} 
.toastImg{ 
    float:left; 
    width:10%; 
} 
.toastText{ 
    width:90%; 
} 

http://jsfiddle.net/egxtU/582/

+0

Вы связаны с правом скрипку? Код в нем совершенно другой. –

+0

Ваш код в js скрипке отличается. Пожалуйста, укажите правильную ссылку –

+0

Это не упаковка, потому что у вас нет места в тексте. Итак, это будет показано ниже. – ketan

ответ

0
.toast { 
    display:flex; 
} 

содержащиеся дивы не завернуть, если не добавить "Flex-обертку: обертывание;" в .toast

.toastImg{ 
    float:left; <-- delete this 
} 
3

Вы можете сделать это с Flexbox и word-break: break-all. Вот Fiddle. Или вместо Flexbox вы можете использовать display: tableDEMO

.toast { 
 
    max-width:300px; 
 
    background-color: #383838; 
 
    color: #F0F0F0; 
 
    display: flex; 
 
} 
 

 
.toastText { 
 
    word-break: break-all; 
 
}
<div class="toast" > 
 
    <div class="toastImg"><img style="float:left;margin-left:8px;width:24px" src="http://www.gravatar.com/avatar/09f4f4e7486e3a25f4c4883258fd32d6/?default=&amp;s=80"></div> 
 
    <div class="toastText">blablalsadosaoadblablalsadosaojdoad</div> 
 
</div>

+0

Это сделало трюк. Спасибо. Я просто не знаком с этим CSS ... –

+0

Добро пожаловать. –

0

решение без Flexbox (в случае IE); https://jsfiddle.net/4mqazcyw/

CSS:

.toast { 
    width:auto; 
    max-width:300px; 
    min-height: 24px; 
    height:auto; 
    background-color: #383838; 
    color: #F0F0F0; 
} 
.toastImg{ 
    width:24px; 
    float:left; 
} 
.toastText{ 
    width:270px; 
    margin-left:30px; 
    position:relative; 
} 

HTML:

<div class="toast" > 
<div class="toastImg"><img style="width:24px"src="http://www.gravatar.com/avatar/09f4f4e7486e3a25f4c4883258fd32d6/?default=&amp;s=80"></div> 
<div class="toastText">blablalsadosaoadblablalsadosaojdoad lsadosaojdoad lsadosaojdoad lsadosaojdoad</div> 
</div> 
0

Что-то вроде этого?

HTML

<div class="toast" > 
<div class="toastImg"><img style="float:left;margin-left:8px;width:24px" src="http://www.gravatar.com/avatar/09f4f4e7486e3a25f4c4883258fd32d6/?default=&amp;s=80"></div> 
<div class="toastText">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce et eros turpis. Sed pharetra in tellus a rhoncus. Suspendisse in vulputate neque, eget egestas tellus. Nullam eleifend quis purus ac consequat. Vivamus quis ligula maximus dolor porttitor bibendum. Maecenas ornare pulvinar eros porta semper. Morbi a ante a enim auctor accumsan et eget quam. Pellentesque ac sagittis diam. Vestibulum volutpat quam nibh, et porttitor velit convallis quis. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Proin semper nunc sit amet varius pellentesque. In nunc eros, consequat et ornare et, bibendum commodo ex. Phasellus quis turpis ut ante facilisis molestie porta sed arcu.</div> 
</div> 

CSS

.toast { 
    width:auto; 
    max-width:300px; 
    height:auto; 
    background-color: #383838; 
    color: #F0F0F0; 
    border:solid black 3px; 
    overflow:hidden; 
} 
.toastImg{ 
    float:left; 
    width:30px; 
    border:solid blue 3px; 
} 
.toastText{ 
    border: red solid 3px; 
    overflow:hidden; 
} 

https://jsfiddle.net/vf02qojk/

Смежные вопросы