محتوای قابل ویرایش "فقط متن ساده» ترکیب ارزش ویژگی اکنون خط پایه است به تازگی در دسترس است

تاریخ انتشار: 20 مارس 2025

هنگامی که می خواهید به کاربر اجازه دهید اطلاعات متن ساده را وارد کند، اولین غریزه شما ممکن است دستیابی به <textarea> باشد. این برای بسیاری از موارد کار می کند و نیازی به تلاش خاصی برای کارکرد با فرم ها ندارد، اما محدودیت هایی نیز دارد.

یک مثال رشد <textarea> به صورت پویا با محتوا بدون هک کردن است. field-sizing: content وجود دارد، اما از مرورگر پشتیبانی محدودی دارد. اینجاست که ترکیب مقدار مشخصه contenteditable="plaintext-only" وارد می‌شود. می‌توانید آن را به عناصر عمومی مانند <div> اضافه کنید و از عنصر بخواهید که به طور خودکار تغییر اندازه را انجام دهد.

محدودیت دیگر استایل است. CSS Custom Highlight API مکانیزمی را برای استایل دادن به محدوده‌های متن دلخواه روی یک سند با استفاده از جاوا اسکریپت برای ایجاد محدوده‌ها و CSS برای استایل دادن به آنها ارائه می‌کند. یک <textarea> به صورت داخلی از یک <div> در ریشه سایه عامل کاربر استفاده می کند، به همین دلیل است که استایل دادن به متن با CSS Custom Highlight API کار نمی کند. اگر مستقیماً روی عنصری مانند <div> که contenteditable ایجاد کرده اید استفاده شود، CSS Custom Highlight API به خوبی کار می کند.

<style>
  ::highlight(highlight) {
    background-color: yellow;
    color: black;
  }
</style>

<div contenteditable="plaintext-only">Edit me</div>

<script>
  const parentNode = document.querySelector('div').firstChild;
  const range = new Range();
  range.setStart(parentNode, 0);
  range.setEnd(parentNode, 3);
  const highlight = new Highlight(range);
  CSS.highlights.set('highlight', highlight);
</script>

پانل عناصر Chrome DevTools در حال بررسی یک ناحیه متنی است که نشان می دهد از یک div در ریشه سایه کاربر-عامل استفاده می کند.

در اینجا یک اسکرین شات از نسخه نمایشی است که این محدودیت را نشان می دهد. توجه داشته باشید که چگونه متن در <textarea> استایل بندی نمی شود، اما متن در دو عنصر کلی <div> contenteditable است.

نسخه ی نمایشی نشان می دهد که چگونه CSS Custom Highlight API فقط با عناصر div قابل ویرایش کار می کند، اما نه با قسمت متن.