Почему элементы "встроенного блока" в переполнении div "nowrap"?
следующий код вызывает переполнение # headline #wrapper, и я не понимаю, почему это происходит.
HTML-код:
<div id="wrapper">
    <div id="logo">
        <img src="/test.png">
    </div>
    <div id="headline">
        <h1>This headline overflows its wrapping div. # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</h1>
    </div>
</div>
CSS:
#wrapper {
    background: #fea;
    white-space: nowrap;
    width: 50%;
}
#logo {
    display: inline-block;
    vertical-align: middle;
}
#logo img {
       width: 6em; 
}
#headline {
     display: inline-block;
     vertical-align: middle;
     white-space: normal;
}
пример кода:http://jsfiddle.net/XjstZ/21/ или http://tinkerbin.com/XvSAEfrK
4 ответов
как следует из названия, встроенные блоки участвуют в встроенном макете, что означает, что они действуют так же, как встроенные элементы и текст. white-space: nowrap вызывает переполнение текста в элементе, предотвращая его обертывание; то же самое происходит с встроенными блоками. Все очень просто.
тот факт, что #headline и white-space: normal не влияет на собственный макет. Элемент white-space свойство влияет на макет его содержимого, а не на себя, даже если собственный ящик элемента является встроенным уровнем.
вам нужно использовать "overflow: hidden" в элементе оболочки
#wrapper {
background: #fea;
white-space: nowrap;
width: 50%;
overflow: hidden;
}
я обновил ваш образец в jsfiddle http://jsfiddle.net/XjstZ/72/
установка ширины для элемента заголовка устраняет проблему.
#headline {
   display: inline-block;
   vertical-align: middle;
   width: 60%;
}
он реагирует, если и обертка изображения, и изображение имеют свою максимальную ширину.
#logo {
   display: inline-block;
   vertical-align: middle;
   max-width: 35%;
}
#logo img {
   width: 6em;
   max-width: 100%;
}
этот контент обернуть из-за white-space: normal;.
на пробел свойство CSS определяет, как обрабатывается пробел внутри элемента. Чтобы заставить слова ломаться внутри себя, используйте overflow-wrap, word-break, или дефисы вместо этого.
Если вы хотите ограничить это с #wrapper чем вы можете ограничить свойство overflow для div.Если вы используете white-space: nowrap; для div это очистить текст переполнения и показать div в одной строке (строке). 
#wrapper {
    background: #fea;
    width: 50%;
    overflow: hidden;
}
#logo {
    display: inline-block;
    vertical-align: middle;
}
#logo img {
       width: 6em; 
}
#headline {
     display: inline-block;
     vertical-align: middle;
}
