You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular文本行间距异常问题求助

解决方案

情况1:直接调整文本区域(textarea)的行间距

如果只是想让文本区域内的每行内容有足够间距,直接给textarea添加自定义CSS即可——之前调整容器高度没用是因为行间距由文本自身的line-height属性控制:

/* 可在组件样式文件或全局样式文件中添加 */
textarea {
  line-height: 1.8; /* 根据需求调整数值,越大行间距越大 */
  white-space: pre-line; /* 保留输入的换行,同时自动适配换行 */
  padding: 0.5rem; /* 可选,增加内边距让内容更美观 */
}

情况2:将输入内容渲染为真正的列表

如果你的需求是把文本区域中每行输入的食材,渲染成带-的独立列表项(而非仅在textarea内显示),可以通过Angular的事件绑定和列表渲染实现:

1. 组件类代码

import { Component } from '@angular/core';

@Component({
  selector: 'app-ingredient-input',
  templateUrl: './ingredient-input.component.html',
  styleUrls: ['./ingredient-input.component.css']
})
export class IngredientInputComponent {
  ingredients: string[] = [];

  handleInput(event: Event) {
    const inputValue = (event.target as HTMLTextAreaElement).value;
    // 按换行分割内容,过滤空行
    this.ingredients = inputValue.split('\n').filter(line => line.trim().length > 0);
  }
}

2. 模板代码

<textarea 
  rows="5" 
  placeholder="输入食材,每行一个"
  (input)="handleInput($event)"
></textarea>

<!-- 渲染成目标样式的列表 -->
<div class="ingredient-list">
  <p *ngFor="let item of ingredients">- {{ item }}</p>
</div>

3. 列表样式

.ingredient-list p {
  margin: 0.6rem 0; /* 控制列表项之间的间距 */
}

以上两种方案都能实现你要的效果,无需纠结Bootstrap默认样式,自定义CSS即可覆盖调整。

内容的提问来源于stack exchange,提问作者Anthony Rodriguez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 13:55:23