• sahand

    (@sahand1377)


    سلام و وقت بخیر

    دوستان من وقتی بعضی متنارو جاستیفای میکنم بین حروف و کلمات فاصله اضافی میفته و با هر css که تونستت رو امتحان کردم درست نشد. نهایتا یکمی بهتر شد ولی باز هم بعضی کلمات جدا جدا میفتن. از پراپرتی های wordspacing

    letter spacing
    word-break width

    استفاده کردم ولی تاثیری نداشت. کسی تجربه این مشکل رو داره

    ممنون پیشاپیش

در حال نمایش 5 پاسخ ( از کل 5)
  • مدیر Saeed Piri

    (@isaeedam)

    درود، روزتون به‌نیکی @sahand1377

    اندازه و تعداد کلمات‌تون مهمه! گاهی اوقات بهتره کمی متن بیشتر بشه تا حالت مناسب‌تری بگیره.

    انگلیسی یا فارسی؟

    درود،

    مشکلی که گفتی خیلی وقت‌ها توی متون فارسی، مخصوصاً وقتی Justify استفاده می‌کنی، پیش میاد و دلایل خاص خودش رو داره. چون مرورگرها به طور پیش‌فرض برای متن‌های چپ به راست (LTR) بهینه شدن و برای متون راست به چپ (RTL) مثل فارسی، Justify همیشه نتیجه خوبی نمی‌ده.

    ✍️ چرا فاصله‌های عجیب می‌افته؟

    مرورگرها موقع Justify کردن، فاصله بین کلمات رو زیاد می‌کنن تا خط کاملاً پر بشه. ولی توی متون فارسی به‌خاطر:

    • استفاده از فونت نامناسب
    • شکست اشتباه کلمات فارسی
    • وجود نویسه‌های نامرئی یا space نامناسب (مثل U+200C)

    این مشکل تشدید می‌شه.

    ✅ راه‌حل‌

    1. استفاده از فونت بهینه برای فارسی

    فونت مناسب خیلی تاثیر داره. فونت‌هایی مثل:

    • IRANSans (یا نسخه‌های رایگان مثل Vazir)
    • Vazirmatn
    • Tanha
    • Sahel
    • Shabnam

    👈 با فونت‌های انگلیسی مثل Arial یا Tahoma معمولاً مشکل بیشتر میشه.

    2. استفاده از text-align: justify با text-justify: inter-word

    text { text-align: justify; text-justify: inter-word; }

    inter-word باعث میشه فقط بین کلمات فاصله داده بشه نه بین حروف. (در برخی مرورگرها بهتر جواب میده)

    3. جلوگیری از جدا شدن حروف یا کلمات خاص

    اگر بعضی حروف یا کلمات در فارسی از هم جدا می‌شن، باید از نیم‌فاصله (Zero-Width Non-Joiner) استفاده کنی:

    • بجای Space از U+200C استفاده کن
      مثلاً به‌جای می رود بنویس می‌رود

    در HTML:

    می‌رود

    4. استفاده از hyphenation (تجربه‌ای)

    در بعضی حالت‌ها می‌تونی از این استفاده کنی (در برخی مرورگرها کار می‌کنه):

    .text { hyphens: auto; -webkit-hyphens: auto; direction: rtl; text-align: justify; }

    اگر با Elementor کار می‌کنی…

    در Elementor بخش استایل متن، بجای فقط justify حتماً کلاس اختصاصی بده و در CSS شخصی این موارد رو تست کن:

    .justify-fix { text-align: justify; text-justify: inter-word; direction: rtl; font-family: "Vazirmatn", sans-serif; line-height: 2; word-spacing: normal; letter-spacing: normal; }

    آغازکننده موضوع sahand

    (@sahand1377)

    @isaeedam

    ممنون از راهنماییی

    درسته تو متن های طولانی این مشل وجود ندارهو طول کلمات کمه. متن فارسی هست. ولی خواستم بدونم شاید راهی داشته باشه

    آغازکننده موضوع sahand

    (@sahand1377)

    @farhad0

    سلام و عرض ادب

    ممنون بابت راهنمایی جامع و کامل ولی متسافنه هیچ یک اثر گذار نبودند. ظاهرا تنها راهش افزایش طول متن هست . بازم ممنون از راهنماییتون
    و اینکه پراپرتی text-justify: inter-word کلا وجود نداشت نتونستم استفاده کنم. شاید منقضی شده

    ارادتمندم.

    @sahand1377 ریسپانسیو کنید!

در حال نمایش 5 پاسخ ( از کل 5)