টেক্সটের লেআউট, বিশেষ করে লাইনের শেষে এবং অনুচ্ছেদের শেষে, কোনও পৃষ্ঠার পাঠযোগ্যতা এবং নান্দনিক আবেদনকে প্রভাবিত করতে পারে। CSS-এ টেক্সট মোড়ানোর একাধিক বিকল্প আছে যা নির্দিষ্ট ব্যবহারের ক্ষেত্রে কাজে লাগতে পারে।
শিরোনামের মতো ছোট টেক্সট ব্লকের জন্য, text-wrap: balance ব্যবহার করুন। এই প্রপার্টি ব্রাউজারকে নির্দেশ দেয় যাতে টেক্সট যতটা সম্ভব সমানভাবে লাইনে ডিস্ট্রিবিউট করা হয়, যার ফলে আরও সিমেট্রিক্যাল দেখায়।
text-wrap: pretty CSS প্রপার্টি আপনাকে আরও অত্যাধুনিক র্যাপিং অ্যালগরিদম চালু করার মাধ্যমে বডি টেক্সটের টাইপোগ্রাফিক কোয়ালিটি উন্নত করার অনুমতি দেয়। এটি বিশেষভাবে "অরফ্যান" (প্যারাগ্রাফের শেষ লাইনে একটি শব্দ) প্রতিরোধ করতে এবং টেক্সটের দীর্ঘ ব্লকের জন্য আরও মনোরম ভিজ্যুয়াল "র্যাগ" তৈরি করার জন্য ডিজাইন করা হয়েছে।
প্রয়োগ
১. টেক্সট এলিমেন্ট শনাক্ত করা:
text-wrap: balance-এর জন্য, শিরোনাম এবং টেবিল হেডারের মতো ছোট টেক্সট ব্লক বেছে নিন। বর্ডার বা ব্যাকগ্রাউন্ডের মতো দৃশ্যমান বক্স আছে এমন এলিমেন্ট এড়িয়ে চলুন, কারণ এর ফলে লেআউটে অপ্রত্যাশিতভাবে খালি জায়গা তৈরি হতে পারে।
text-wrap: pretty-এর জন্য, এমন এলিমেন্ট বেছে নিন যাতে সম্ভাব্যভাবে দীর্ঘ টেক্সট থাকে যেখানে অনাথ শব্দ (রান্ট) বা খারাপ লাইন ব্রেক সবচেয়ে বেশি লক্ষণীয়। এতে নিম্নলিখিত উপাদানগুলি অন্তর্ভুক্ত:
<p><blockquote><li>- অন্য যেকোনও এলিমেন্ট যাতে সম্ভাব্যভাবে দীর্ঘ টেক্সট রয়েছে।
সঠিক র্যাপিং পদ্ধতি বেছে নেওয়া
| মানদণ্ড | text-wrap: balance |
text-wrap: pretty |
text-wrap: wrap (ডিফল্ট) |
|---|---|---|---|
| এগুলির জন্য সেরা | ছোট ব্লক (হেডিং, টাইটেল) | দীর্ঘ ব্লক (অনুচ্ছেদ, তালিকা) | পারফর্ম্যান্স-ক্রিটিক্যাল কন্টেন্ট |
| ভিজ্যুয়াল গোল | প্রতিসম রেখার দৈর্ঘ্য | অরফ্যান ("রান্ট") এড়ানো | দ্রুত, স্ট্যান্ডার্ড র্যাপিং |
| লাইন সংক্রান্ত সীমাবদ্ধতা | সর্বাধিক ৬–১০ লাইন (অ্যালগরিদম সীমা) | ৩ থেকে অনেক লাইনের জন্য সবচেয়ে ভালো | কোনও সীমা নেই |
| পারফর্ম্যান্সের খরচ | উচ্চ: বাইনারি সার্চ অ্যালগরিদম | মাঝারি: লুক-ব্যাক অ্যালগরিদম | কম: স্ট্যান্ডার্ড গ্রিডি অ্যালগরিদম |
২. বেছে নেওয়া র্যাপিং প্রয়োগ করুন:
text-wrap: balance বিশেষত ছোট, মাল্টি-লাইন এলিমেন্ট যেমন হেডিং (h1-h6), সাবহেডিং বা পুলকোটে প্রয়োগ করুন।
/* Target specific heading elements for balanced wrapping */
h1, h2, h3, h4, h5, h6 {
/* Enables balanced line-breaking logic */
text-wrap: balance;
}
text-wrap: pretty ব্যবহার করে একটি অপ্টিমাইজ করা অ্যালগরিদম চালু করুন যা সেরা ব্রেক পয়েন্ট খুঁজে পেতে একটি অনুচ্ছেদের শেষ কয়েকটি লাইন মূল্যায়ন করে।
/* Apply to multi-line text blocks to prevent orphaned words */
p, blockquote, li, .pretty-text {
/* Enables pretty line-breaking logic for body copy */
text-wrap: pretty;
}
গুরুত্বপূর্ণ সীমাবদ্ধতা ও পারফর্ম্যান্স
text-wrap: balance
- লাইনের সীমা: ব্রাউজারগুলি পারফর্ম্যান্স বজায় রাখার জন্য লাইনের সংখ্যার উপর একটি সীমা আরোপ করে (সাধারণত Chromium-এ ৬টি লাইন এবং Firefox-এ ১০টি লাইন)। টেক্সট এই সীমা অতিক্রম করলে, ব্রাউজার স্ট্যান্ডার্ড
wrapআচরণে ফিরে আসে। এইসব সীমা পেরিয়ে যেতে পারে এমন টেক্সট ব্লকেtext-wrap: balanceব্যবহার করা এড়িয়ে চলুন। - টার্গেট করা অ্যাপ্লিকেশন:
text-wrap: balanceবিশ্বব্যাপী প্রয়োগ করবেন না (যেমন,* { text-wrap: balance; })। ব্রাউজার দ্বারা ব্যবহৃত পুনরাবৃত্তিমূলক "বাইনারি সার্চ" অ্যালগরিদম কম্পিউটেশনালভাবে ব্যয়বহুল। নির্দিষ্ট, ছোট টেক্সট এলিমেন্টে এর ব্যবহার সীমিত করুন। - প্রস্থের সাথে ইন্টার্যাকশন:
text-wrap: balanceকন্টেনারের প্রস্থ (inline-size) পরিবর্তন করে না। এটি শুধুমাত্র সেই প্রস্থের মধ্যে টেক্সট কীভাবে র্যাপ করা হবে তা প্রভাবিত করে। এর ফলে কন্টেনারের শেষে ফাঁকা জায়গা থেকে যেতে পারে, যা সম্পূর্ণ-প্রস্থের টেক্সট ব্লকের উপর নির্ভর করে এমন লেআউটকে প্রভাবিত করতে পারে।
text-wrap: pretty
- পারফর্ম্যান্স বনাম কোয়ালিটি: বাধ্যতামূলক:
text-wrap: pretty-এর ক্ষেত্রে ডিফল্টwrap(গ্রিডি) অ্যালগরিদমের চেয়ে বেশি কম্পিউটেশনাল খরচ হয়, কারণ এটি ব্রেক পয়েন্ট অপ্টিমাইজ করার জন্য একাধিক লাইন (সাধারণত শেষ চারটি) মূল্যায়ন করে। আপনার পৃষ্ঠায় যদি প্রচুর পরিমাণে টেক্সট কন্টেন্ট থাকে, তাহলে প্রতিটি এলিমেন্টে গ্লোবালি এটি প্রয়োগ করা এড়িয়ে চলুন। - মাল্টি-লাইন টেক্সটের জন্য সবচেয়ে ভালো:
pretty-এর সুবিধা তিন বা তার বেশি লাইনের প্যারাগ্রাফে সবচেয়ে বেশি স্পষ্ট হয়। ছোট, এক লাইনের টেক্সটের ক্ষেত্রে এর প্রভাব খুব কম বা নেই বললেই চলে। - ব্রাউজার-নির্দিষ্ট আচরণ: মনে রাখবেন যে প্রয়োগের বিবরণ আলাদা হয়। Chromium-ভিত্তিক ব্রাউজার সাধারণত শেষ চারটি লাইনে ফোকাস করে, তবে অন্যান্য ইঞ্জিন পুরো অনুচ্ছেদ মূল্যায়ন করতে পারে।
ফলব্যাক স্ট্র্যাটেজি
যেসব ব্রাউজারে text-wrap: balance বা text-wrap: pretty কাজ করে না, সেখানে প্রপার্টি উপেক্ষা করা হয় এবং ডিফল্ট wrap আচরণ ব্যবহার করে টেক্সট র্যাপ করা হবে। এটি একটি প্রোগ্রেসিভ এনহ্যান্সমেন্ট যা স্ট্যান্ডার্ড টাইপোগ্রাফিতে সুন্দরভাবে ডিগ্রেড করে। এটি নিশ্চিত করে যে আপনার কন্টেন্ট সমস্ত ব্রাউজার জুড়ে পুরোপুরি পাঠযোগ্য থাকবে এবং এটি সমর্থন করে এমন ব্রাউজারগুলিতে একটি উন্নত অভিজ্ঞতা প্রদান করবে।
গুরুত্বপূর্ণ লেআউটের ক্ষেত্রে যেখানে রিফাইন করা টেক্সট লেআউট প্রয়োজন, সেখানে জাভাস্ক্রিপ্ট লাইব্রেরি ব্যবহার করুন, তবে মনে রাখবেন যে এটি ধীরগতির হতে পারে এবং পারফর্ম্যান্স সংক্রান্ত সমস্যা সৃষ্টি করতে পারে।