这是一个棱角分明的app(但任何有css知识的人都可以帮忙),这里有一个动态内容的文本区域。
因此,当内容item.text
更改时,文本区域应该根据内容增长或缩小,以完全适应内容而不溢出。
<textarea [value]="item.text" [placeholder]="item.text ? '' : 'Your Text Here...'" class="font-xl font-bold"></textarea>
// dont worry about the placeholder. you can ignore that.
当前,在我的情况下,滚动条出现&; 它不是随着动态内容而缩小或增长的。
我怎么才能做到呢?
或者,如果有一种方法可以将常规的html 我试过css规则,比如,max-content fit-content等。。。 什么都没解决!
没有JavaScript,您无法更改文本区域的高度。 但您可以使用可编辑的div代替。 在普通HTML中,类似的东西将起到与文本区域相同的作用,并且将根据内容自动调整大小。
<div class="font-xl font-bold" contentEditable>Hello World</div>
如果您使用可以编辑的 null<div contenteditable="true">This is a div. It is editable. Try to change this text.</p>
这不能仅用css来完成,它需要JavaScript,而JavaScript有相当多的角落案例,可能会有问题。
我建议使用lib。 我已经多次使用angular material,但没有任何问题,只需将材料添加到您的项目中,并将MatInputModule
导入到您想要使用它的模块,然后:
<textarea matInput cdkTextareaAutoSize cdkAutosizeMinRows="5" [value]="item.text" [placeholder]="item.text ? '' : 'Your Text Here...'" class="font-xl font-bold"></textarea>
文档:https://material.angular.io/components/input/overview#auto-resizing-textarea-elements
https://material.angular.io/cdk/text-field/overview