Как заставить "text-overflow: ellipsis" работать с плавающими div?
У меня есть две кнопки, плавающие на противоположных сторонах экрана, и я бы хотел, чтобы они красиво развалились, если экран сжимается. Визуально это то, что я хочу:
________________________________________________________________
| |
| |LongTextButtonName| |LongTextButtonName| | When the screen
|_______________________________________________________________| is large
_______________________________________
| |
| |LongTextBu...| |LongTextBu...| | When the screen is small
|______________________________________|
К сожалению, сейчас я получаю следующее:
________________________________________
| |
| |LongTextButtonName| |
| |LongTextButtonName| |
|_______________________________________|
Я хотел бы использовать только CSS-решение.
Здесь мои текущие html и css (и здесь fiddle):
<div class="button-container">
<div class="left-button"><a>LongTextButtonName</a></div>
<div class="right-button"><a>LongTextButtonName</a></div>
</div>
.button-container {
min-width:320px;
}
.button-container > div {
border: 1px solid gray;
background-color: orange;
min-width: 160px;
padding: 8px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.left-button {
float: left;
}
.right-button {
float: right;
}
Ответы
Ответ 1
Ниже приведена скрипка, основанная на следующем:
- контейнер требует ширины, чтобы вызвать переполнение и многоточие.
- чтобы ящики постоянно сжимались, я использовал процентную ширину.
- для учета заполнения я использовал CSS3
box-sizing:border-box;
Обратите внимание, что из-за box-sizing:border-box;
это решение не будет работать в старых браузерах.
.button-container {
min-width:320px;
}
.button-container > div {
border: 1px solid gray;
background-color: orange;
max-width: 50%;
padding: 8px;
white-space: nowrap;
overflow: hidden;
box-sizing:border-box;
text-overflow: ellipsis;
}
.left-button {
float: left;
}
.right-button {
float: right;
}
http://jsfiddle.net/UfxgZ/1/