Цей пост призначений для 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. Також я думаю, що це неправильно прочитав, встановлення ширини змусить пропозицію перейти до наступного рядка, коли він потрапить у кінець. Це поведінка за замовчуванням.