Sobes.tech
Junior

რა არის BEM მეთოდოლოგია?

sobes.tech AI

პასუხი AI-სგან

BEM (ბლოკი, ელემენტი, მოდიფიკატორი) — CSS-ში კლასების სახელების მიცემის მეთოდოლოგია, რომელიც საშუალებას აძლევს შექმნას მასშტაბური და ადვილად შენარჩუნებადი კოდი. მისი მიზანია, კომპონენტები იყოს დამოუკიდებელი, გადამეორებადი და ადვილად შეცვლადი.

ძირითადი პრინციპები:

  • ბლოკი: დამოუკიდებელი კომპონენტი, რომელსაც აქვს უნიკალური სახელი. შეუძლია შეიცავდეს ელემენტებს და სხვა ბლოკებს.
    <div class="card">...</div>
    
  • ელემენტი: ბლოკის ნაწილი, რომელსაც გარეთ დამოუკიდებელი მნიშვნელობა არ აქვს. ელემენტის სახელი გამოყოფილია ბლოკის სახელიდან ორი ქვედა ხაზით (__).
    <div class="card">
      <h2 class="card__title">...</h2>
      <p class="card__text">...</p>
    </div>
    
  • მოდიფიკატორი: ბლოკის ან ელემენტის მდგომარეობის დამატება ან მისი გარეგნობის/მოქმედების შეცვლა. მოდიფიკატორის სახელი გამოყოფილია ბლოკის ან ელემენტის სახელიდან ორი ჰაიფენით (--).
    <button class="button button--primary button--disabled">...</button>
    <div class="card card--featured">...</div>
    

უპირატესობები:

  • კითხულობა: კლასები ადვილად გასაგებია, კომპონენტის სტრუქტურა ჩანს.
  • გადამეორებადი: კომპონენტები დამოუკიდებელია და შეიძლება გამოყენებულ იქნას სხვადასხვა ნაწილში.
  • მოწყობა: ერთ კომპონენტში ცვლილებები მინიმალურ გავლენას ახდენს სხვა კომპონენტებზე.
  • მასშტაბურობა: შესაფერისია დიდ გუნდებსა და პროექტებისთვის.

სტრუქტურის მაგალითი:

.card {
  /* ბლოკის სტილები */
}

.card__title {
  /* ელემენტის სტილები */
}

.card__text {
  /* ელემენტის სტილები */
}

.card--featured {
  /* ბლოკის მოდიფიკატორის სტილები */
}

.button {
  /* ბლოკის სტილები */
}

.button--primary {
  /* ბლოკის მოდიფიკატორის სტილები */
}

.button--disabled {
  /* ბლოკის მოდიფიკატორის სტილები */
}