У меня есть несколько строк адреса электронной почты и имени. Я хотел бы показать как можно больше контента. Итак, если у меня короткое имя, укажите больше адреса электронной почты, и если у меня будет короткое письмо, укажите другое имя. Если имя и адрес электронной почты длинны, я бы хотел, чтобы они занимали равное количество места. И для любого длинного, усеченного элемента я бы хотел, чтобы они закончили с многоточием.
Есть ли способ сохранить эти требования, не прибегая к Javascript? Я бы предпочел не использовать макеты flexbox (недостаточно поддержки браузера), но я был бы открыт для этого. Кроме того, все это одна строка; без упаковки.
------------- -------------------------------------
| This is a long name...| This is a long email... |
------------- -------------------------------------
|<------------------100% width ------------------>|
<div class='result'>
<div class='textHolder'>
<h3>Name</h3>
<h4>Email</h4>
</div>
</div>
Без javascript единственным решением, которое, как я думаю, будет работать, является max-width
50% для каждого и text-overflow
с помощью многоточия (...) при переполнении текста...
Единственная проблема заключается в том, что, например, имя очень маленькое, если письмо очень велико, оно будет занимать только 50% от полной ширины.
Я сделал эту скрипку: http://jsfiddle.net/N36tY/
(также я согласен с cimmanon, используйте другие теги)
Пример HTML:
<div class='result'>
<div class='textHolder'>
<h3>Name</h3>
<h4>Email</h4>
<div class="clear"></div>
<h3>Name and more text, etc and even more to make it overflow</h3>
<h4>Email</h4>
<div class="clear"></div>
<h3>Name and more text, etc and even more to make it overflow</h3>
<h4>Email and a lot of text and more and even more to make it overflow</h4>
<div class="clear"></div>
<h3>Small name</h3>
<h4>Email and a lot of text and more and even more to make it overflow</h4>
</div>
</div>
CSS:
.textHolder {
width: 100%;
}
h3 {
background: blue;
color: #FFF;
}
h4 {
background: green;
color: #FFF;
}
h3, h4 {
margin: 0;
padding: 0;
font-size: 14px;
font-weight: normal;
display: block;
float: left;
min-width: 10px;
max-width: 50%;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
.clear {
clear: both;
}
@Newtang Я обновил JSFiddle до ваших требований. Когда вы расширяете и сокращаете страницу, если ширина страницы слишком мала, появятся эллипсы.
Здесь ссылка http://jsfiddle.net/6gFN9/1/
.textHolder {
width: 100%;
}
h3, h4 {
float: left;
max-width: 50%;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}