Пользовательский текст с переполнением CSS? - PullRequest
11 голосов
/ 06 декабря 2011

Я знаю, что это возможно через Javascript, так как я сделал это сам. Однако, по мере того, как платформа, которую я создаю, становится все больше и больше, я хочу взять как можно больше тяжелой нагрузки JS. Кроме того, на данный момент, я думаю, использование свойства переполнения текста CSS гораздо более выполнимо, поскольку FireFox теперь также поддерживает его.

Так или иначе, читая справочную страницу переполнения текста на MDN , мне стало любопытно, что третий параметр определен как «строка». Я не знаю, относится ли это к «свойству text-overflow, принимает строковые значения», или это отдельный параметр (так же, как clip и ellipsis).

По сути, я просто хотел бы знать, позволит ли этот параметр string генерировать настраиваемый вывод с переполнением текста , такой как " ..". Я пробовал такие вещи, как:

  • text-overflow: string(" ..");
  • text-overflow: " ..";
  • text-overflow: ellipsis-" ..";

Ответы [ 3 ]

17 голосов
/ 06 декабря 2011

На основании таблицы совместимости в нижней части документации по MDN, похоже, что только Firefox 9+ поддерживает строковое значение для text-overflow.

Итак, вы в основном вышлиудачи на этом.

1 голос
/ 27 апреля 2012

Mozilla предложила этот синтаксис и появилась в начале 2012 года проекта LC спецификации UI уровня 3 :

text-overflow: ' ..';

Или, если вы хотелидобавьте .. к существующему многоточию:

text-overflow: '... ..';

Тем не менее, нет никаких других известных реализаций, кроме собственного Mozilla , и поэтому этот синтаксис рискует быть удаленным изпозже пересмотр спецификации.

0 голосов
/ 11 февраля 2017

чистый метод css основан на -webkit-line-зажим, и вы можете настраивать textoverflow 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...