Этот пост предназначен для решения CSS, но пост довольно старый, так что на тот случай, если другие наткнутся на это и используют современную среду JS, такую как Angular 4+, есть простой способ сделать это с помощью Angular Pipes без необходимости возиться с CSS.
Вероятно, существуют также способы реагирования или Vue. Это просто для демонстрации того, как это можно сделать в рамках.
усечь-text.pipe.ts
/**
* Helper to truncate text using JS in view only.
*
* This is pretty difficult to do reliably with CSS, especially when there are
* multiple lines.
*
* Example: {{ value | truncateText:maxLength }} or {{ value | truncateText:45 }}
*
* If maxLength is not provided, the value will be returned without any truncating. If the
* text is shorter than the maxLength, the text will be returned untouched. If the text is greater
* than the maxLength, the text will be returned with 3 characters less than the max length plus
* some ellipsis at the end to indicate truncation.
*
* For example: some really long text I won't bother writing it all ha...
*/
@Pipe({ name: 'truncateText' })
export class TruncateTextPipe implements PipeTransform {
transform(value: string, ...args: any[]): any {
const maxLength = args[0]
const maxLengthNotProvided = !maxLength
const isShorterThanMaximumLength = value.length < maxLength
if (maxLengthNotProvided || isShorterThanMaximumLength) {
return value
}
const shortenedString = value.substr(0, maxLength - 3)
return `${shortenedString}...`
}
}
app.component.html
<h1>{{ application.name | truncateText:45 }}</h1>
textarea
или для них есть свойствоinput
максимальной длины (maxlength="50"
это в HTML), или вам придется использовать Javascript. Также я думаю, что неправильно прочитал это, установка ширины заставит предложение перейти к следующей строке, когда оно достигнет конца. Это поведение по умолчанию.