راست چین کردن کامپوننت های MaterialUI


در آموزش قبل کامپوننت های MaterialUI و JSS رو معرفی کردیم و نحوه سفارشی سازی و تغییر در کامپوننت ها رو گفتیم.
یکی از مسائل دیگه ای که شاید در حین استفاده از کامپوننت ها MaterialUi بهش برخورد کنیم اینه که کامپوننت ها چپ چین هستن و ازونجایی که زبانی که ما استفاده میکنیم فارسیه پس لازمه بعضی از کامپوننت ها راست چین بشه.
روش راست چین کردن کامپوننت ها رو گام به گام باهم بررسی میکنیم:
قدم اول: HTML
در بدنه برنامه ” dir=”rtl قرار بدین.
قدم دوم: Theme
در theme که استفاده میکنین دایرکشن رو به rtl تغییر بدین.
قدم سوم: jss-rtl
استفاده از پلاگین های JSS برای راست چین کردن
برای نصب این پلاگین این کد رو اجرا کنین.
1 |
npm install jss-rtl |
به عنوان نمونه به روش زیر با استفاده از JSS میتونین کامپوننت رو راست چین کنین.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
import { create } from 'jss'; import rtl from 'jss-rtl'; import JssProvider from 'react-jss/lib/JssProvider'; import { createGenerateClassName, jssPreset } from '@material-ui/core/styles'; // Configure JSS const jss = create({ plugins: [...jssPreset().plugins, rtl()] }); // Custom Material-UI class name generator. const generateClassName = createGenerateClassName(); function RTL(props) { return ( <JssProvider jss={jss} generateClassName={generateClassName}> {props.children} </JssProvider> ); } |
اگر میخواین این تنظیمات rtl روی بعضی قسمت ها اعمال نشه اولش اینو اضافه کنین
flip: false
در راستای سری آموزشهای Material_UI اگر پیشنهادی دارین و موضوعی رو درنظر دارین ،حتما با ما درمیون بذارین.
مطالب زیر را حتما مطالعه کنید
طراحی فلت دیزاین و بررسی ویژگی های آن
ریسپانسیو کردن وب سایت با استفاده از Material-UI
معرفی کتابخانه ها و فریم ورک های UI
معرفی jss و نحوه استفاده از آن در برنامه
معرفی کامپوننت های MaterialUi و نحوه سفارشی سازی آن
روش نصب و استفاده از Material UI
7 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
در هنگام تغییر زبان سایت چجوری باید از چپ به راست یا بلعکس شه؟
سلام. من میخوام یه تکست فیلد بذارم که rtl باشه. همه روشایی که توی سایتا زده بودن (از جمله روش بالا) رو امتحان کردم ولی لیبل نمیاد سمت راست و همون چپ میمونه.
میشه راهنمایی کنید چی کار کنم؟
سلام.
شما میتونید با استفاده از CSS اینکار رو راحت انجام بدید.
direction: rtl; و text-align: center; رو قرار بدید
سلام وقتتون بخیر منم این مشکل رو دارم اما حل نشد با این روش هم. خیلی وقته در گیرش هستم راهکار دیگه ای ندارید؟ ببینید textfield قسمت تایپش راست چین میشه اما لیبلش که موقع کلیک روش میره همون بالا سمت چپ میمونه در صورتی که باید بیاد سمت بالا راست. 🙁
import { create } from ‘jss’;
import rtl from ‘jss-rtl’;
import { StylesProvider, jssPreset } from ‘@material-ui/core/styles’;
import React from “react”;
import ThemeProvider from “@material-ui/styles/ThemeProvider”;
import createMuiTheme from “@material-ui/core/styles/createMuiTheme”;
// Configure JSS
const jss = create({ plugins: […jssPreset().plugins, rtl()] });
const theme = createMuiTheme({
“direction”: “rtl”,
“fontFamily”: “BYekan”,
});
const RTL=(props) =>{
return (
{props.children}
);
}
export default RTL;
من میخام یک دکمه در هدر بزارم و مثل سایت material-ui تم سایت را از light به dark تغییر بدم چطور میشه از کامپوننت دگه به theme type دسترسی داشت تا بتونم این را انجام بدم؟
سلام امین عزیز
برای اینکار میتونی از context api استفاده کنی
که در دوره جامع react js توضیح داده شده این مورد و نحوه پیاده سازی دارک مود و لایت مود رو یاد میگیرید