در این بخش به آموزش راست چین کردن بوت استرپ می پردازیم. این ویژگی به شما امکان میدهد تا قالبها، اجزا و کلاسهای کاربردی (utilities) را بهگونهای تنظیم کنید که متن و عناصر صفحه مطابق زبانهایی مانند فارسی و عربی نمایش داده شوند.
پیشنیازهای فعالسازی پشتیبانی از راست چین در بوت استرپ
برای فعال کردن حالت راست به چپ در صفحات طراحیشده با Bootstrap، باید دو شرط اصلی را رعایت کنید:
-
افزودن ویژگی
dir="rtl"
به تگ<html>
این ویژگی به مرورگر میگوید که جهت متن و عناصر صفحه باید از راست به چپ باشد. -
تعیین زبان مناسب با ویژگی
lang
مثلاً اگر زبان صفحه فارسی است، باید بنویسید:
1 |
<html lang="fa" dir="rtl"> |
- استفاده از نسخه RTL فایل CSS بوت استرپ
برای اعمال صحیح تغییرات ظاهری، لازم است فایل CSS مخصوص حالت RTL را در صفحه خود بارگذاری کنید. بهعنوان نمونه:
1 |
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.rtl.min.css" integrity="sha384-PJsj/BTMqILvmcej7ulplguok8ag4xFTPryRq8xevL7eBYSmpXKcbNVuy+P0RMgq" crossorigin="anonymous"> |
قالب ابتدایی برای شروع با RTL
در ادامه، یک نمونه ساده از قالب HTML را میبینید که تمام شرایط لازم برای فعالسازی پشتیبانی از راست چین را داراست:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
<!DOCTYPE html> <html lang="fa" dir="rtl"> <head> <!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- Bootstrap CSS --> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.rtl.min.css" integrity="sha384-PJsj/BTMqILvmcej7ulplguok8ag4xFTPryRq8xevL7eBYSmpXKcbNVuy+P0RMgq" crossorigin="anonymous"> <title> صفحه نمونه</title> </head> <body> <h1> سلام بوت استرپ! </h1> <!-- Optional JavaScript; choose one of the two! --> <!-- Option 1: Bootstrap Bundle with Popper --> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz" crossorigin="anonymous"></script> <!-- Option 2: Separate Popper and Bootstrap JS --> <!-- <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.8/dist/umd/popper.min.js" integrity="sha384-I7E8VVD/ismYTF4hNIPjVp/Zjvgyol6VFvRkX/vR+Vc4jQkC+hVqc2pM8ODewa9r" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.min.js" integrity="sha384-fbbOQedDUMZZ5KreZpsbe1LCZPVmfTnH7ois6mU1QK+m14rQ1l2bGBq41eYeM/fS" crossorigin="anonymous"></script> --> </body> </html> |
شخصیسازی از سورس
برای اهداف شخصیسازی، میتوانید از متغیرها، نقشهها (maps) و میکسینها استفاده کنید. این روش دقیقا مشابه حالت LTR (چپبهراست) عمل میکند، اما برای RTL (راستبهچپ) استفاده میشود.
مقادیر سفارشی راست چین در بوت استرپ
برخی دستورات ویژه برای مقادیر CSS در حالت RTL وجود دارد که از طریق آنها میتوانید خروجی یک متغیر را در حالت راست چین متفاوت تنظیم کنید.
برای مثال، اگر بخواهید وزن فونت را در سراسر کدهای خود در حالت RTL کاهش دهید، میتوانید از دستور زیر استفاده کنید:
1 |
$font-weight-bold: 600 #{/* rtl:500 */} !default; |
1 2 3 4 5 6 7 8 9 |
/* bootstrap.css */ dt { font-weight: 600 /* rtl:500 */; } /* bootstrap.rtl.css */ dt { font-weight: 500; } |
فونت جایگزین برای زبانهای غیرلاتین
همه الفباهای غیرلاتین پشتیبانی نمیشوند. بنابراین اگر بخواهید از خانواده فونتهای اروپایی به فونتهای عربی تغییر دهید، باید از دستور زیر استفاده کنید:
1 |
/*rtl:insert: {value}*/ |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
$font-family-sans-serif: Helvetica Neue #{"/* rtl:insert:Arabic */"}, // Cross-platform generic font family (default user interface font) system-ui, // Safari for macOS and iOS (San Francisco) -apple-system, // Chrome < 56 for macOS (San Francisco) BlinkMacSystemFont, // Windows "Segoe UI", // Android Roboto, // Basic web fallback Arial, // Linux "Noto Sans", // Sans serif fallback sans-serif, // Emoji fonts "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !default; |
استفاده همزمان از چپ چین و راست چین در بوت استرپ
آیا میخواهید LTR (چپبهراست) و RTL (راستبهچپ) را همزمان استفاده کنید؟ این کار کاملاً ممکن است. فقط کافی است importهای خود را داخل یک کلاس بگذارید و یک قانون تغییر نام سفارشی برای RTLCSS تعریف کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
/* rtl:begin:options: { "autoRename": true, "stringMap":[ { "name": "ltr-rtl", "priority": 100, "search": ["ltr"], "replace": ["rtl"], "options": { "scope": "*", "ignoreCase": false } } ] } */ .ltr { @import "../node_modules/bootstrap/scss/bootstrap"; } /*rtl:end:options*/ |
پس از اجرای Sass و RTLCSS، هر سلکتور در فایل CSS با پیشوند .ltr
(یا .rtl
برای فایل RTL) خواهد بود. حالا که هر دو فایل را دارید، میتوانید با استفاده از کلاس .ltr
یا .rtl
مشخص کنید که کدام جهت در کدام بخش از صفحه اعمال شود.
نکاتی برای استفاده همزمان از LTR و RTL در بوت استرپ:
-
مطمئن شوید که هنگام تغییر کلاسهای
.ltr
و.rtl
، ویژگیهایdir
وlang
را نیز بهدرستی تنظیم کردهاید. -
بهتر است یکی از فایلهای LTR یا RTL را بهصورت غیربلاک (asynchronously) بارگذاری کنید، چون بارگذاری هر دو فایل بهصورت همزمان ممکن است باعث افت عملکرد شود.
-
استفاده از استایلهای تو در تو میتواند عملکرد mixin مربوط به
form-validation-state()
را مختل کند.
مورد خاص Breadcrumb
تنها موردی که نیاز به متغیر جدید دارد، جداکننده breadcrumb است. این متغیر با نام $breadcrumb-divider-flipped
تعریف میشود و مقدار پیشفرض آن، همان $breadcrumb-divider
است.
در آموزش پروژه محور بوت استرپ، پروژه ها با زبان فارسی پیاده سازی میشوند تا نحوه استفاده از قابلیت RTL در بوت استرپ را در عمل یاد بگیرید. این شیوه آموزشی کمک میکند تا با چالشهای طراحی صفحات راست چین بهصورت عملی آشنا شوید و بتوانید در پروژه های واقعی، از این ویژگی بهدرستی استفاده کنید.
راستی! برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام سورس باران عضو شوید.
- انتشار: ۲۲ اردیبهشت ۱۴۰۴
دسته بندی موضوعات
- آموزش ارز دیجیتال
- آموزش برنامه نویسی
- آموزش متنی برنامه نویسی
- اطلاعیه و سایر مطالب
- پروژه برنامه نویسی
- دوره های تخصصی برنامه نویسی
- رپورتاژ
- فیلم های آموزشی
- ++C
- ADO.NET
- Adobe Flash
- Ajax
- AngularJS
- apache
- ARM
- Asp.Net
- ASP.NET MVC
- AVR
- Bootstrap
- CCNA
- CCNP
- CMD
- CSS
- Dreameaver
- EntityFramework
- HTML
- IOS
- jquery
- Linq
- Mysql
- Oracle
- PHP
- PHPMyAdmin
- Rational Rose
- silver light
- SQL Server
- Stimulsoft Reports
- Telerik
- UML
- VB.NET&VB6
- WPF
- Xml
- آموزش های پروژه محور
- اتوکد
- الگوریتم تقریبی
- امنیت
- اندروید
- اندروید استودیو
- بک ترک
- بیسیک فور اندروید
- پایتون
- جاوا
- جاوا اسکریپت
- جوملا
- دلفی
- دوره آموزش Go
- دوره های رایگان پیشنهادی
- زامارین
- سئو
- ساخت CMS
- سی شارپ
- شبکه و مجازی سازی
- طراحی الگوریتم
- طراحی بازی
- طراحی وب
- فتوشاپ
- فریم ورک codeigniter
- فلاتر
- کانستراکت
- کریستال ریپورت
- لاراول
- معماری کامپیوتر
- مهندسی اینترنت
- هوش مصنوعی
- یونیتی
- کتاب های آموزشی
- Android
- ASP.NET
- AVR
- LINQ
- php
- Workflow
- اچ تی ام ال
- بانک اطلاعاتی
- برنامه نویسی سوکت
- برنامه نویسی موبایل
- پاسکال
- پایان نامه
- پایتون
- جاوا
- جاوا اسکریپت
- جی کوئری
- داده کاوی
- دلفی
- رباتیک
- سئو
- سایر کتاب ها
- سخت افزار
- سی اس اس
- سی پلاس پلاس
- سی شارپ
- طراحی الگوریتم
- فتوشاپ
- مقاله
- مهندسی نرم افزار
- هک و امنیت
- هوش مصنوعی
- ویژوال بیسیک
- نرم افزار و ابزار برنامه نویسی
- وردپرس