علت ریزش متن به ستون بعدی

why text overflows into next column
20 آبان 1403

سلام! همونطور که می‌دونید، کار با متن‌ها توی صفحات وب می‌تونه گاهی چالش‌برانگیز باشه. یکی از مشکلاتی که خیلی از ما باهاش روبرو میشیم اینه که چرا متن ما به ستون بعدی میریزه. این مسئله می‌تونه به دلایل مختلفی رخ بده و فهمیدن علت اصلی، اولین قدم در حل اون هست.

در اکثر مواقع، ریزش متن به ستون بعدی به واسطه تنظیمات CSS هست که درست انجام نشده. یکی از معمول‌ترین مشکلات، عدم تنظیم درست عرض ستون‌ها یا بلاک‌هایی هست که متن توشون قرار گرفته. فرض کنید شما دو تا ستون دارید و متن داخل اون‌ها بیش از اندازه بزرگ تنظیم شده; خب، طبیعتاً متن نمی‌تونه به صورت همزمان در هر دو ستون جا بگیره و به ستون بعدی میرزه.

مشکل دیگه‌ای که می‌تونه رخ بده استفاده نادرست یا نبود خاصیت‌های overflow و word-wrap توی CSS هست. اگر این خاصیت‌ها رو به درستی تنظیم نکنید، وقتی متن بیشتری در ستون جا داده بشه دچار مشکل می‌شید.

به علاوه، مرورگرهای مختلف بعضی وقت‌ها متن‌ها رو به شکل متفاوتی نمایش میدن، که این موضوع می‌تونه عامل دیگه‌ای برای این مشکل باشه. همچنین، می‌تونید از ویژگی flexbox برای کنترل بهتر چیدمان استفاده کنید که در ادامه توضیح و کدهای مربوطه رو براتون آماده کردم.

ما به عنوان توسعه‌دهندگان وب، نیاز داریم که همیشه دسته‌بندی درست و کامل‌تری از عناصر صفحه‌مون داشته باشیم تا نمودار صفحات بهتر باشه و این گونه مشکلات کاهش پیدا کنه.


.container {
    display: flex;
    flex-wrap: wrap;
}
.column {
    flex: 1 1 30%;
    box-sizing: border-box;
    overflow: hidden;
    word-wrap: break-word;
}

خط اول: استایل کلاس .container رو تعریف می‌کنه که از display: flex; و flex-wrap: wrap; برای تقسیم بند ستون‌ها استفاده می‌کنیم.
خط دوم: تعریف استایل کلاس .column شامل تعریف ویژگی‌های flex و box-sizing برای اندازه‌گذاری و جلوگیری از ریزش.
خط سوم: از overflow: hidden; استفاده می‌کنیم تا متن اضافی داخل ستون پنهان بشه و از خروج از مرزها جلوگیری بشه.
خط چهارم: از word-wrap: break-word; استفاده خواهیم کرد تا کلمات بلند داخل ستون شکسته بشن و از ستون بیرون نزنن.

سوالات متداول

؟

چرا متن در ستون نمی‌ماند؟

؟

چگونه می‌توانم ریزش متن را متوقف کنم؟

؟

آیا استفاده از Flexbox می‌تواند کمک کند؟