Mājas lapa » Kodēšana » CSS režģa izkārtojums Kā lietot minmax ()

    CSS režģa izkārtojums Kā lietot minmax ()

    The CSS režģa izkārtojuma modulis ievieš atsaucīgu dizainu uz nākamo līmeni, ieviešot a jauna veida elastība kas vēl nekad nav bijis redzams. Tagad mēs nevaram tikai definēt pielāgotus tīklus blazingly ātri tikai ar tīru CSS, bet CSS Grid arī ir daudzi slēptās dārgakmeņi kas ļauj mums vēl vairāk izmainīt režģi un sasniegt sarežģītus izkārtojumus.

    The minmax () funkciju ir viena no šīm retāk pazīstamajām iezīmēm. Tas ļauj noteikt tīkla sliežu ceļa lielumu minimālais līdz maksimālajam diapazonam tā, lai režģis varētu vislabāk pielāgot katra lietotāja skatījumu.

    Sintakse

    Sintakse minmax () funkcija ir samērā vienkārša divi argumenti: minimālā un maksimālā vērtība:

     minmax (min, max) 

    The min vērtību jābūt mazākam nekā maks, pretējā gadījumā maks pārlūkprogramma ignorē.

    Mēs varam izmantot minmax () darbojas kā vērtība režģa-veidnes kolonnas vai režģa-veidnes rindas īpašums (vai abi). Mūsu piemērā mēs izmantosim pirmo, jo tas ir daudz biežāks lietošanas gadījums.

     .konteiners displejs: režģis; grid-template-columns: minmax (100px, 200px) 1fr 1fr; režģa-veidnes rindas: 100px 100px 100px; režģa sprauga: 10px;  

    Tālāk redzamajā demonstrācijā "Codepen" jūs varat atrast HTML un CSS kods mēs izmantosim visu rakstu.

    Mēs varam izmantot dažādas vērtības iekšpusē minmax () funkcija ir atkarīga no tā, kāda veida pasūtījuma režģis mēs vēlamies izveidot.

    Statiskās garuma vērtības

    Ir divi galvenie veidi, kā mēs varam izmantot minmax () darbojas ar statiskās garuma vērtības.

    Pirmkārt, mēs varam izmantot minmax () tikai par vienu kolonnu un definējiet citu kolonnu platumu kā vienkāršas statiskas vērtības (pikseļi šeit).

     grid-template-columns: minmax (100px, 200px) 200px 200px; 

    Tālāk redzamajā gif demonstrācijā var redzēt, ka šis izkārtojums ir nav atsaucīgi, tomēr pirmajā slejā ir zināmu elastību. Otrā un trešā sleja saglabā fiksēto platumu (200px), bet pirmā sleja ir no 100 līdz 200 piks., pamatojoties uz pieejamo telpu.

    Otrkārt, mēs varam noteikt platumu vairāk nekā viena tīkla kolonna izmantojot minmax (). Min un max vērtības ir gan statiskas, tāpēc pēc noklusējuma režģis ir nav atsaucīgi. Tomēr pašas kolonnas ir elastīga, bet tikai starp 100 un 200 piks. Viņi augt un sarukt vienlaicīgi mainot skata loga lielumu.

     grid-template-columns: minmax (100px, 200px) minmax (100px, 200px) minmax (100px, 200px); 

    Ņemiet vērā, ka mēs varam arī izmantot atkārtot () funkciju ar to minmax (). Līdz ar to iepriekšējo koda fragmentu var rakstīt arī šādi:

     grid-template-columns: atkārtot (3, minmax (100px, 200px)); 

    Dinamiskās garuma vērtības

    Papildus statiskajām vērtībām minmax () funkcija arī pieņem procentu vienības un jauna frakcija (fr) kā argumenti. Izmantojot tos, mēs varam sasniegt pielāgotus tīklus, kas abi ir atsaucīgi un mainīt to izmērus atkarībā no pieejamās vietas.

    Turpmāk norādītais kods rada režģi, kurā atrodas pirmās kolonnas platums svārstās no 50% līdz 80% otrais un trešais vienmērīgi sadalīt atlikušo vietu.

     režģa-veidnes kolonnas: minmax (50%, 80%) 1fr 1fr; 

    Kad mēs izmantojam dinamiskās vērtības ar minmax () funkcija, ir svarīgi izveidot a noteikums, kam ir jēga. Ļaujiet man jums parādīt piemēru, kur režģis sadalās:

     grid-template-columns: minmax (1fr, 2fr) 1fr 1fr; 

    Šim noteikumam nav nekādas jēgas, jo pārlūks ir nevar izlemt kuru vērtību piešķirt minmax () funkciju. Minimālā vērtība novestu pie a 1fr 1fr 1fr kolonnas platums, bet maksimālais 2fr 1fr 1fr. Bet abi ir iespējami pat ļoti mazā ekrānā. Tur ir nekas, uz kuru pārlūks var attiekties.

    Šeit ir rezultāts:

    Apvienojiet statiskās un dinamiskās vērtības

    Tas ir iespējams arī apvienot statiskās un dinamiskās vērtības. Piemēram, iepriekš minētajā Codepen demonstrācijā es izmantoju minmax (100px, 200px) 1fr 1fr; noteikums, kura rezultāts ir režģis, kurā ir pirmā sleja svārstās no 100 līdz 200px un atlikušā vieta ir pārējiem diviem.

     grid-template-columns: minmax (100px, 200px) 1fr 1fr; 

    Ir interesanti ievērot, ka, palielinoties skata logam, pirmkārt, pirmā sleja aug no 100 pikss uz 200 piks. Pārējie divi, kurus pārvalda fr vienība, sāk augt tikai pēc tam, kad pirmais sasniedza maksimālo platumu. Tas ir loģiski, jo frakcijas vienības mērķis ir sadalīt pieejamo (atlikušo) telpu.

    The min-saturs, maksimālais saturs, un auto atslēgvārdi

    Tur ir trešā veida vērtība mēs varam piešķirt minmax () funkciju. The min-saturs, maksimālais saturs, un auto atslēgvārdi attiecas uz režģa ceļa izmēriem saturu.

    maksimālais saturs

    The maksimālais saturs atslēgvārdu vada pārlūkprogrammu, kurai jābūt tīkla kolonnai tikpat plašs kā plašākais elements.

    Tālāk redzamajā demonstrācijā es ievietoju 400 pikseļu attēls pirmā tīkla trases iekšpusē un izmantoja šādu CSS noteikumu (jūs varat atrast Codepen demo ar pilnu modificēto kodu raksta beigās):

     .konteiners grid-template-columns: maksimālais saturs 1fr 1fr; / ** * Tas pats ar minmax () apzīmējumu: * režģa-veidnes kolonnas: minmax (maksimālais saturs, maksimālais saturs) 1fr 1fr; * / 

    Es neesmu izmantojis minmax () notācija vēl ir, bet koda komentārā varat redzēt, kā tas pats kods izskatīsies ar to (lai gan šeit tas ir lieks).

    Kā redzat, pirmā režģa kolonna ir tikpat plaša kā plašākais elements (šeit attēls). Tādā veidā lietotāji vienmēr var redzēt attēlu pilna izmēra. Tomēr, saskaņā ar noteiktu skata loga izmēru, šis izkārtojums ir nav atsaucīgi.

    min-saturs

    The min-saturs atslēgvārdu vada pārlūkprogrammu, ka režģa kolonnai ir jābūt tik plašai kā šaurākais elements, tādā veidā neizraisa pārplūdi.

    Redzēsim, kā izskatās iepriekšējā demonstrācija ar attēlu, ja mainām pirmās kolonnas vērtību uz min-saturs:

     .konteiners grid-template-columns: min-saturs 1fr 1fr; / ** * Tas pats ar minmax () apzīmējumu: * režģa-veidnes kolonnas: minmax (min-saturs, min-saturs) 1fr 1fr; * / 

    Es atstāju zaļo fonu zem attēla, lai jūs varētu redzēt pirmo režģa šūnas pilnu izmēru.

    Kā redzat, pirmā sleja saglabā mazāko platumu var sasniegt bez pārplūdes. Šajā piemērā to noteiks 4. un 7. režģa šūnu minimālais platums, kas izriet no polsterējums un fonta izmērs īpašībām, kā attēls pirmajā šūnā varētu samazināties līdz nullei bez pārplūdes.

    Ja režģa šūnā ir teksta virkne, min-saturs būtu vienāds ar garākā vārda platumu, kā tas ir mazākais elements, ko nevar turpināt sarukt bez pārplūdes. Šeit ir lielisks BitsOfCode raksts, kurā var redzēt, kā min-saturs un maksimālais saturs rīkoties, ja režģa šūnā ir teksta virkne.

    Lietošana min-saturs un maksimālais saturs kopā

    Ja mēs izmantot min-saturs un maksimālais saturs kopā iekšpusē minmax () funkcija, mēs saņemam režģa kolonnu, kas:

    1. ir atsaucīga
    2. nav pārplūdes
    3. nav plašāks par tā plašāko elementu
     .konteiners grid-template-columns: minmax (min-saturs, max saturs) 1fr 1fr;  

    Mēs varam izmantot arī min-saturs un maksimālais saturs atslēgvārdi kopā ar citām garuma vērtībām iekšpusē minmax () funkciju, līdz noteikumam ir jēga. Piemēram, minmax (25%, maksimālais saturs) vai minmax (min-saturs, 300px) būtu gan derīgi noteikumi.

    auto

    Visbeidzot, mēs varam izmantot arī auto atslēgvārdu kā argumentu minmax () funkciju.

    Kad auto ir izmanto maksimāli, tā vērtība ir identiska maksimālais saturs.

    Kad tas ir izmanto vismaz, tās vērtību nosaka min-platums / min-augstums tas nozīmē, ka auto dažreiz ir identisks min-saturs, bet ne vienmēr.

    Mūsu iepriekšējā piemērā, min-saturs tas ir vienāds ar auto, kā minimālais pirmā režģa kolonnas platums vienmēr ir mazāks par minimālo augstumu. Tātad piederīgais CSS noteikums:

     .konteiners grid-template-columns: minmax (min-saturs, max saturs) 1fr 1fr;  

    varētu būt rakstīts arī šādi:

     .konteiners grid-template-columns: minmax (auto, auto) 1fr 1fr;  

    The auto atslēgvārds var būt arī izmanto kopā ar citām statiskām un dinamiskām vienībām (pikseļi, fr vienība, procenti utt.) iekšpusē minmax () funkciju minmax (auto, 300px) būtu derīgs noteikums.

    Jūs varat pārbaudīt, kā min-saturs, maksimālais saturs, un auto atslēgvārdi darbojas ar minmax () darbojas šādā Codepen demonstrācijā: