React CSS modullari


CSS modullari sizga ma’lum bir componentga lokal ravishda kiritilgan CSS-ni yozish imkonini beradi.

Bu CSS class nomlari ziddiyatlarini oldini oladi va uslublaringizni yanada barqaror qiladi.


ULASHISH

CSS modullari nima?

React-da CSS modullari bu CSS-fayllar bo‘lib, ularda class nomlari sukut bo‘yicha lokal ravishda qamrab olinadi.

Eslatma: CSS modullari React asosiy kutubxonasining bir qismi emas, lekin ko‘plab React qurish vositalari tomonidan qo‘llab-quvvatlanadi.

CSS fayli .module.css kengaytmasiga ega bo‘lishi kerak va uni React fayl(lar)ingizga import qilib ishlatish mumkin.


CSS modulini yaratish

Keling, Button.module.css deb nomlangan CSS modulini yarataylik, bu yerda biz ba’zi tugmalarni shakllantiramiz.

Misol

Button.module.css nomli fayl yarating va unga bir nechta uslublarni kiriting:

.mybutton {
  padding: 10px 20px;
  border: none;
  border-radius: 4px;
  cursor: pointer;
}

CSS modulidan foydalanish

Componentingizda CSS modulini import qiling va foydalaning:

Misol

CSS modulidan foydalanadigan tugma componentini yarating:

import styles from './Button.module.css';

function App() {
  return (
    <div>
      <button className={styles.mybutton}>
        My Button
      </button>
    </div>
  );
}

Misolni ishga tushirish »

Misol tushuntirildi

  • Biz uslublar obyektini CSS modulidan import qilamiz
  • mybutton sinfiga kirish uchun styles.mybutton dan foydalanamiz
  • Tugmaning haqiqiy klass nomi noyob bo‘ladi (masalan, _mybutton_q1obu_1)


Bir nechta classlar

Yuqoridagi misolda biz faqat bitta sinfdan foydalandik, lekin keling, ko‘proq sinflarni qo‘shamiz:

Misol

Button.module.css-ga qo‘shimcha uslublar qo‘shing:

.mybutton {
  padding: 10px 20px;
  border: none;
  border-radius: 4px;
  cursor: pointer;
}

.primary {
  background-color: #007bff;
  color: white;
}

.secondary {
  background-color: #6c757d;
  color: white;
}

O‘zgarishlarni namoyish qilish uchun har birida ikkita sinfdan iborat ikkita tugma bo‘lishi kerak:

Misol

Turli xil uslubdagi ikkita tugmachali misol:

import styles from './Button.module.css';

function App() {
  return (
    <div>
      <button className={`${styles.mybutton} ${styles.primary}`}>
        My Primary Button
      </button>
      <button className={`${styles.mybutton} ${styles.secondary}`}>
        My Secondary Button
      </button>
    </div>
  );
}

Misolni ishga tushirish »


Kompozitsiya darslari

CSS modullari composes kalit so‘zidan foydalangan holda sinflarni birlashtirishga imkon beradi:

Bu shuni anglatadiki, bir class boshqa sinfning uslublarini meros qilib olishi mumkin.

Oldingi misol uchun ikkalasi ham primary va secondary sinflari mybutton sinfining uslublariga bog‘liq.

Buni primary va secondary sinflariga composes: mybutton qo‘shish orqali amalga oshirish mumkin:

Misol

.mybutton {
  padding: 10px 20px;
  border: none;
  border-radius: 4px;
  cursor: pointer;
}

.primary {
  composes: mybutton;
  background-color: #007bff;
  color: white;
}

.secondary {
  composes: mybutton;
  background-color: #6c757d;
  color: white;
}

Endi primary dan foydalanish kifoya. va componentdagi secondary sinflari:

Misol

import styles from './Button.module.css';

function App() {
  return (
    <div>
      <button className={styles.primary}>
        Primary Button
      </button>
      <button className={styles.secondary}>
        Secondary Button
      </button>
    </div>
  );
}

Misolni ishga tushirish »


Global classlar

CSS modullaridan foydalanganda .module.css faylidagi classlar faqat ularni import qiluvchi componentda ishlatilishi mumkin. Bu class nomiga fayl nomining xeshi va noyob identifikator bilan prefiks qo‘yish orqali amalga oshiriladi. Turli fayllarda bir xil class nomidan foydalanish xavfsiz, chunki nomlar noyob bo‘ladi.

Biroq, ba’zida siz sinflaringiz butun dunyo bo‘ylab mavjud bo‘lishini xohlaysiz va ularni boshqa componentlarda ishlatasiz.

Buni :global sintaksisi bilan qilishingiz mumkin:

Misol

Mana .myheader nomli global sinfga ega CSS moduli:

:global(.myheader) {
  padding: 10px 20px;
  font-size: 50px;
  color: white;
  background-color: dodgerblue;
}

:global wrapper sinfni hamma uchun mavjud qiladi.

U oddiygina .myheader deb ataladi va prefikssiz va _myheader_q1obu_1 kabi noyob identifikator qo‘shiladi.

Siz uni quyidagi kabi componentlaringizda ishlatishingiz mumkin:

Misol

import styles from './BlueHeader.module.css';

function App() {
  return (
    <div>
      <h1 className="myheader">
        My Header
      </h1>
    </div>
  );
}

Misolni ishga tushirish »


Global va mahalliy sinflarni birlashtiring

Siz global va mahalliy sinflarni bir xil CSS modulida birlashtira olasiz:

Misol

Global va mahalliy sinflarga ega CSS moduli:

:global(.myheader) {
  padding: 10px 20px;
  font-size: 50px;
  color: white;
  background-color: dodgerblue;
}

.myparagraph {
  font-size: 20px;
  color: white;
  background-color: purple;
}

Quyidagi kabi componentlaringizda foydalaning:

Misol

import styles from './MyStyles.module.css';

function App() {
  return (
    <div>
      <h1 className="myheader">
        My Header
      </h1>
      <p className={styles.myparagraph}>
        My Paragraph
      </p>
    </div>
  );
}

Misolni ishga tushirish »



W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!