Ответ 1
Основываясь на Таблица совместимости в нижней части документации MDN, кажется, что только Firefox 9+ поддерживает строковое значение для text-overflow
.
Итак, вам больше не повезло на этом.
Я знаю, что это возможно через Javascript, поскольку я сделал это сам. Однако, поскольку платформа, которую я наращиваю, становится все больше и больше, я хочу взять как можно больше тяжелой нагрузки JS. Кроме того, на данный момент я считаю, что использование свойства text-overflow CSS намного более эффективно, так как FireFox также поддерживает его.
В любом случае, прочитав страницу с переполнением текста в MDN, мне стало интересно, какой третий параметр определен как "строка". Я не знаю, относится ли это к тому, что свойство text-overflow принимает строковые значения, или если это параметр самостоятельно (точно так же, как клип и многоточие).
По сути, я просто хотел бы знать, может ли этот параметр строки генерировать пользовательский вывод переполнения текста, например " .."
. Я пробовал такие вещи, как:
text-overflow: string(" ..");
text-overflow: " ..";
text-overflow: ellipsis-" ..";
Основываясь на Таблица совместимости в нижней части документации MDN, кажется, что только Firefox 9+ поддерживает строковое значение для text-overflow
.
Итак, вам больше не повезло на этом.
Mozilla продвинулась вперед и предложила этот синтаксис, и в начале 2012 года появилась черновик уровень 3 интерфейса:
text-overflow: ' ..';
Или если вы хотите добавить ..
к существующему многоточию:
text-overflow: '... ..';
Однако никаких других известных реализаций пока нет, кроме Mozilla own, и поэтому такой синтаксис может быть удален из более поздней версии спецификации.
чистая базовая база css на -webkit-line-clamp, и вы можете настроить customoverflow css как босс:
@-webkit-keyframes ellipsis {/*for test*/
0% { width: 622px }
50% { width: 311px }
100% { width: 622px }
}
.ellipsis {
max-height: 40px;/* h*n */
overflow: hidden;
background: #eee;
-webkit-animation: ellipsis ease 5s infinite;/*for test*/
/**
overflow: visible;
/**/
}
.ellipsis .content {
position: relative;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-pack: center;
font-size: 50px;/* w */
line-height: 20px;/* line-height h */
color: transparent;
-webkit-line-clamp: 2;/* max row number n */
vertical-align: top;
}
.ellipsis .text {
display: inline;
vertical-align: top;
font-size: 14px;
color: #000;
}
.ellipsis .overlay {
position: absolute;
top: 0;
left: 50%;
width: 100%;
height: 100%;
overflow: hidden;
/**
overflow: visible;
left: 0;
background: rgba(0,0,0,.5);
/**/
}
.ellipsis .overlay:before {
content: "";
display: block;
float: left;
width: 50%;
height: 100%;
/**
background: lightgreen;
/**/
}
.ellipsis .placeholder {
float: left;
width: 50%;
height: 40px;/* h*n */
/**
background: lightblue;
/**/
}
.ellipsis .more {
position: relative;
top: -20px;/* -h */
left: -50px;/* -w */
float: left;
color: #000;
width: 50px;/* width of the .more w */
height: 20px;/* h */
font-size: 14px;
/**
top: 0;
left: 0;
background: orange;
/**/
}
<div class='ellipsis'>
<div class='content'>
<div class='text'>text text text text text text text text text text text text text text text text text text text text text </div>
<div class='overlay'>
<div class='placeholder'></div>
<div class='more'>...more</div>
</div>
</div>
</div>