Eesti

Õppige CSS-i konteineripäringuid tõeliselt responsiivse veebidisaini jaoks. Avastage, kuidas kohandada paigutusi konteineri suuruse, mitte ainult vaateakna järgi, tagades sujuva kasutuskogemuse kõikides seadmetes.

Responsiivse Disaini Avamine: Põhjalik Juhend CSS-i Konteineripäringute Kohta

Aastaid on responsiivne veebidisain tuginenud peamiselt meediapäringutele, mis võimaldavad veebisaitidel kohandada oma paigutust ja stiili vastavalt vaateakna laiusele ja kõrgusele. Kuigi see lähenemine on tõhus, võib see mõnikord tunduda piiravana, eriti keerukate komponentide puhul, mis peavad kohanema sõltumatult ekraani üldisest suurusest. Siin tulevad mängu CSS-i konteineripäringud – võimas uus tööriist, mis võimaldab elementidel reageerida neid sisaldava elemendi suurusele, mitte vaateaknale endale. See avab responsiivses disainis uue paindlikkuse ja täpsuse taseme.

Mis on CSS-i konteineripäringud?

CSS-i konteineripäringud on CSS-i funktsioon, mis võimaldab teil rakendada stiile elemendile selle vanemkonteineri suuruse või muude omaduste põhjal. Erinevalt meediapäringutest, mis on suunatud vaateaknale, on konteineripäringud suunatud konkreetsele elemendile. See võimaldab luua komponente, mis kohandavad oma stiili vastavalt nende konteineris olevale ruumile, olenemata ekraani suurusest.

Kujutage ette kaardikomponenti, mis kuvatakse erinevalt sõltuvalt sellest, kas see on paigutatud kitsasse külgribasse või laia põhisisu alasse. Meediapäringute abil peaksite võib-olla kaardi stiili kohandama ekraani suuruse põhjal, mis võib põhjustada ebakõlasid. Konteineripäringute abil saate määratleda stiile, mis rakenduvad spetsiifiliselt siis, kui kaardi konteiner saavutab teatud laiuse, tagades ühtlase ja responsiivse kogemuse erinevates paigutustes.

Miks kasutada konteineripäringuid?

Konteineripäringud pakuvad traditsiooniliste meediapäringute ees mitmeid eeliseid:

Kuidas CSS-i konteineripäringuid rakendada

CSS-i konteineripäringute rakendamine hõlmab kahte peamist sammu: konteineri defineerimine ja päringute kirjutamine.

1. Konteineri defineerimine

Esiteks peate määrama elemendi *konteineriks*. Seda tehakse omaduse container-type abil. Omadusel container-type on kaks peamist väärtust:

Saate kasutada ka omadust container-name, et anda oma konteinerile nimi, mis võib olla abiks konkreetsete konteinerite sihtimisel päringutes. Näiteks:

.card-container {
  container-type: inline-size;
  container-name: cardContainer;
}

See kood deklareerib klassiga .card-container elemendi konteineriks. Määrame inline-size, et võimaldada päringuid konteineri laiuse põhjal. Andsime sellele ka nime cardContainer.

2. Konteineripäringute kirjutamine

Kui olete konteineri defineerinud, saate kirjutada konteineripäringuid, kasutades @container at-reeglit. Süntaks sarnaneb meediapäringutele:

@container cardContainer (min-width: 400px) {
  .card {
    flex-direction: row;
  }
  .card-image {
    width: 40%;
  }
  .card-content {
    width: 60%;
  }
}

See päring rakendab loogeliste sulgude sees olevaid stiile ainult siis, kui nimega cardContainer konteineri minimaalne laius on 400 pikslit. See sihib elementi .card (oletatavasti .card-container'i laps) ja kohandab selle paigutust. Kui konteiner on kitsam kui 400 pikslit, siis neid stiile ei rakendata.

Lühend: Saate kasutada ka @container reegli lühendatud versiooni, kui te ei pea konteineri nime määrama:

@container (min-width: 400px) {
  /* Stiilid, mis rakenduvad, kui konteiner on vähemalt 400px lai */
}

Konteineripäringute praktilised näited

Vaatame mõningaid praktilisi näiteid, kuidas saate kasutada konteineripäringuid responsiivsemate ja kohanduvamate paigutuste loomiseks.

Näide 1: Kaardikomponent

See näide näitab, kuidas kohandada kaardikomponenti vastavalt selle konteineri laiusele. Kaart kuvab oma sisu ühes veerus, kui konteiner on kitsas, ja kahes veerus, kui konteiner on laiem.

HTML:

Kaardi pilt

Kaardi pealkiri

See on kaardi näidissisu.

Loe edasi

CSS:

.card-container {
  container-type: inline-size;
  border: 1px solid #ccc;
  margin-bottom: 20px;
}

.card {
  display: flex;
  flex-direction: column;
}

.card-image {
  width: 100%;
  height: auto;
}

.card-content {
  padding: 10px;
}

@container (min-width: 500px) {
  .card {
    flex-direction: row;
  }
  .card-image {
    width: 40%;
  }
  .card-content {
    width: 60%;
  }
}

Selles näites on .card-container deklareeritud konteineriks. Kui konteineri laius on alla 500 piksli, kasutab .card veerupaigutust, paigutades pildi ja sisu vertikaalselt. Kui konteineri laius on 500 pikslit või rohkem, lülitub .card reapaigutusele, kuvades pildi ja sisu kõrvuti.

Näide 2: Navigatsioonimenüü

See näide demonstreerib, kuidas kohandada navigatsioonimenüüd vastavalt olemasolevale ruumile. Kui konteiner on kitsas, kuvatakse menüüelemendid rippmenüüs. Kui konteiner on laiem, kuvatakse menüüelemendid horisontaalselt.

HTML:


CSS:

.nav-container {
  container-type: inline-size;
  background-color: #f0f0f0;
  padding: 10px;
}

.nav-container ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.nav-container li {
  margin-bottom: 5px;
}

.nav-container a {
  display: block;
  padding: 5px 10px;
  text-decoration: none;
  color: #333;
}

@container (min-width: 600px) {
  .nav-container ul {
    display: flex;
  }

  .nav-container li {
    margin-right: 10px;
    margin-bottom: 0;
  }

  .nav-container a {
    display: inline-block;
  }
}

Selles näites on .nav-container deklareeritud konteineriks. Kui konteineri laius on alla 600 piksli, kuvatakse menüüelemendid vertikaalse loendina. Kui konteineri laius on 600 pikslit või rohkem, kuvatakse menüüelemendid horisontaalselt, kasutades flexboxi.

Näide 3: Toodete nimekiri

E-kaubanduse toodete nimekiri saab kohandada oma paigutust vastavalt konteineri laiusele. Väiksemates konteinerites sobib hästi lihtne nimekiri tootepildi, pealkirja ja hinnaga. Konteineri kasvades saab esitluse täiustamiseks lisada lisateavet, näiteks lühikirjelduse või kliendihinnangu. See võimaldab ka peenemat kontrolli kui ainult vaateakna sihtimine.

HTML:

Toode 1

Toote nimi 1

19,99 €

Toode 2

Toote nimi 2

24,99 €

CSS:

.product-listing-container {
  container-type: inline-size;
  display: flex;
  flex-wrap: wrap;
}

.product-item {
  width: 100%;
  margin-bottom: 20px;
  border: 1px solid #eee;
  padding: 10px;
}

.product-item img {
  width: 100%;
  height: auto;
  margin-bottom: 10px;
}

.product-item h3 {
  margin-top: 0;
  font-size: 1.2em;
}

.product-item .price {
  font-weight: bold;
  color: #007bff;
}

@container (min-width: 400px) {
  .product-item {
    width: 50%;
    padding: 15px;
  }
}

@container (min-width: 768px) {
  .product-item {
    width: 33.33%;
  }
}

See CSS-kood määrab esmalt `product-listing-container`'i konteineriks. Kitsaste konteinerite puhul (alla 400 piksli) võtab iga toode 100% laiusest. Kui konteiner kasvab üle 400 piksli, paigutatakse tooted kahte veergu. Üle 768 piksli laiuse puhul kuvatakse tooted kolmes veerus.

Brauseri tugi ja polütäited

Konteineripäringutel on hea brauseritugi kaasaegsetes brauserites, sealhulgas Chrome'is, Firefoxis, Safaris ja Edge'is. Vanemad brauserid ei pruugi neid aga algupäraselt toetada.

Vanemate brauserite toetamiseks saate kasutada polütäidet (polyfill). Populaarne valik on container-query-polyfill, mille leiate npm-ist ja GitHubist. Polütäited täidavad toetamata funktsioonide lünga, võimaldades teil kasutada konteineripäringuid isegi vanemates brauserites.

Parimad praktikad konteineripäringute kasutamisel

Siin on mõned parimad praktikad, mida konteineripäringute kasutamisel meeles pidada:

Levinud lõksud ja kuidas neid vältida

Konteineripäringud vs. meediapäringud: õige tööriista valimine

Kuigi konteineripäringud pakuvad olulisi eeliseid, on meediapäringutel endiselt oma koht responsiivses disainis. Siin on võrdlus, mis aitab teil otsustada, milline tööriist on erinevates olukordades parim:

Omadus Konteineripäringud Meediapäringud
Sihtmärk Konteineri suurus Vaateakna suurus
Responsiivsus Komponendipõhine Lehepõhine
Paindlikkus Kõrge Keskmine
Koodi dubleerimine Madalam Kõrgem
Kasutusjuhud Korduvkasutatavad komponendid, keerulised paigutused Globaalsed paigutuse kohandused, põhiline responsiivsus

Üldiselt kasutage konteineripäringuid siis, kui peate kohandama komponendi stiili vastavalt selle konteineri suurusele, ja kasutage meediapäringuid siis, kui peate tegema globaalseid paigutuse kohandusi vastavalt vaateakna suurusele. Sageli on parim lähenemine mõlema tehnika kombinatsioon.

Responsiivse disaini tulevik konteineripäringutega

Konteineripäringud kujutavad endast olulist sammu edasi responsiivses disainis, pakkudes suuremat paindlikkust ja kontrolli selle üle, kuidas elemendid kohanduvad erinevate kontekstidega. Kuna brauseritugi jätkuvalt paraneb, saavad konteineripäringud tõenäoliselt veebiarendajate jaoks üha olulisemaks tööriistaks. Need annavad disaineritele ja arendajatele võimaluse luua tõeliselt kohanduvaid ja kasutajasõbralikke veebisaite, mis pakuvad sujuvat kogemust kõigis seadmetes ja ekraanisuurustes.

Kokkuvõte

CSS-i konteineripäringud on võimas lisa responsiivse disaini tööriistakasti. Võimaldades elementidel reageerida neid sisaldava elemendi suurusele, võimaldavad need tõelist komponendipõhist responsiivsust ja avavad veebidisainis uued paindlikkuse ja täpsuse tasemed. Mõistes, kuidas konteineripäringuid tõhusalt rakendada ja kasutada, saate luua kohanduvamaid, hooldatavamaid ja kasutajasõbralikumaid veebisaite, mis pakuvad kõigile paremat kogemust.

Ressursid