ОТРЕДАКТИРОВАНО 30.04.13: IE10, кажется, избавился от описанного поведения, и единственный браузер, в котором мы сейчас можем наблюдать это поведение, — это Firefox
Я хочу, чтобы один div (.side)
располагался прямо внутри встроенного блока (.wrap)
, а другой div (.content)
содержал длинную строку без переноса с переполнением текста: многоточие в случае переполнения. Также .wrap
не должен быть шире своего контейнера, поэтому его максимальная ширина: 100%.
Когда ширина содержимого в .content
в сочетании с шириной .side
достаточно широка, чтобы быть шире, чем контейнер .wrap
- содержимое в .content
должно переполнять его.
И когда ширина содержимого в .content
в сочетании с шириной .side
меньше ширины контейнера .wrap
- тогда не должно быть переполнения в .content
, .wrap
просто должно занимать ширину .content
и .side
вместе взятых. Вроде так, но не в Firefox и IE10. В этих двух браузерах ширина .wrap
равна ширине самого широкого внутреннего блока. Но я ожидал, что .wrap
будет учитывать ширину как .side
, так и .content
.
Вы можете увидеть это поведение здесь: http://jsbin.com/evamik/1/ , просто сделайте окно браузера достаточно широкое, и вы увидите переполнение текста в лаймовом div (.content)
. Если вы отключите overflow:hidden на .content
, вы увидите, что ширина .wrap
равна ширине .content
, а ширина .side
игнорируется.
Итак, как заставить .wrap
соблюдать ширину как .side
, так и .content
?
HTML:
<div class="wrap">
<div class="side">
side
</div>
<div class="content">
nonwrappnonwrappingnonwrappingnonwrappingnonwrapping
</div>
<div class="clear"></div>
</div>
CSS:
.wrap {
background: lime;
display: inline-block;
max-width: 100%;
}
.side {
float: right;
background: orange;
}
.content {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.clear {
clear: both;
}
Пример URL: http://jsbin.com/evamik/1/