ЦСС Грид Лаиоут Како користити минмак ()
Тхе ЦСС Грид Лаиоут Модуле уводи одговарајући дизајн на сљедећи ниво увођењем а нова врста флексибилности то никада раније није виђено. Сада, не можемо само дефине цустом гридс блиставо брзо искључиво са чистим ЦСС-ом, али и ЦСС Грид много скривених драгуља који нам омогућавају да даље подешавамо мрежу и постижемо компликоване распореде.
Тхе минмак ()
функције је једна од ових мање познатих особина. Омогућава дефинисање величине мрежне стазе као минимум до максималног опсега тако да се мрежа може прилагодити видном пољу сваког корисника на најбољи могући начин.
Синтакса
Синтакса минмак ()
функција је релативно једноставна два аргумента: минимална и максимална вредност:
минмак (мин, мак)
Тхе мин
вредност мора бити мањи него мак
, иначе мак
прегледник игнорише.
Можемо користити минмак ()
функција као вредност грид-темплате-цолумн
или грид-темплате-ровс
власништво (или обоје). У нашем примеру, ми ћемо користити прво, јер је то много чешћи случај коришћења.
.контејнер дисплаи: грид; грид-темплате-цолумнс: минмак (100пк, 200пк) 1фр 1фр; грид-темплате-ровс: 100пк 100пк 100пк; грид-гап: 10пк;
У приказу Цодепен испод, можете пронаћи ХТМЛ и ЦСС код користићемо у целом чланку.
Можемо користити различите врсте вредности унутар минмак ()
функција, све зависи од врсте прилагођене мреже коју желимо да креирамо.
Статичке вредности дужине
Постоје два основна начина како можемо користити минмак ()
фунцтион витх статичке вредности дужине.
Прво, можемо користити минмак ()
само за једну колону мреже и дефинисати ширину осталих колона као једноставне статичне вредности (овде пиксели).
грид-темплате-цолумнс: минмак (100пк, 200пк) 200пк 200пк;
У гиф демо-у испод, можете видјети да је овај распоред не одговара, међутим прва колона има нека флексибилност. Друга и трећа колона задржавају фиксну ширину (200пк) док се прва колона креће од 100пк до 200пк, на основу расположивог простора.
Друго, можемо дефинисати ширину више од једне колоне мреже Користећи минмак ()
. Мин и мак вредности су статичне, тако да је подразумевано решетка не одговара. Међутим, саме колоне су флексибилан, али само између 100пк и 200пк. Они расту и скупљају се истовремено док мењамо величину прозора.
грид-темплате-цолумн: минмак (100пк, 200пк) минмак (100пк, 200пк) минмак (100пк, 200пк);
Имајте на уму да можемо користити понављање()
функције тогехтер витх минмак ()
. Дакле, претходни исјечак кода такође може бити написан овако:
грид-темплате-цолумнс: репеат (3, минмак (100пк, 200пк));
Динамичке вредности дужине
Осим статичких вриједности, минмак ()
функција такође прихвата постотних јединица анд тхе нова јединица (фр) као аргументи. Користећи их, можемо постићи прилагођене решетке које су обоје респонсиве и променити своје димензије према расположивом простору.
Доњи код даје решетку у којој је ширина прве колоне креће се између 50% и 80% други и трећи равномерно поделите преостали простор.
грид-темплате-цолумнс: минмак (50%, 80%) 1фр 1фр;
Када користимо динамичке вредности са минмак ()
функција, кључно је поставити правило које има смисла. Да вам покажем пример где грид распада:
грид-темплате-цолумнс: минмак (1фр, 2фр) 1фр 1фр;
Ово правило нема смисла, као што је прегледач не могу да одлуче коју вредност доделити минмак ()
функције. Минимална вредност би довела до а 1фр 1фр 1фр
ширина колоне, док је максимум до 2фр 1фр 1фр
. Али, оба су могућа чак и на врло малом екрану. Ево га ништа са прегледачем не може да се односи.
Ево резултата:
Комбинујте статичке и динамичке вредности
Такође је могуће комбинују статичке и динамичке вредности. На пример, у коду Цодепен изнад, користио сам минмак (100пк, 200пк) 1фр 1фр;
правило које резултира у мрежи у којој се налази прва колона се креће између 100пк и 200пк а преостали простор је равномерно расподељена између остала два.
грид-темплате-цолумнс: минмак (100пк, 200пк) 1фр 1фр;
Интересантно је приметити да се, с обзиром на то да се поглед повећава, прва колона расте од 100пк до 200пк. Друга два, којима влада фр јединица, почињу да расту тек након што је прва достигла максималну ширину. То је логично, јер је циљ јединице фракција подела расположивог (преосталог) простора.
Тхе мин-цонтент
, мак-цонтент
, и ауто
кључне речи
Постоји трећа врста вриједности можемо доделити минмак ()
функције. Тхе мин-цонтент
, мак-цонтент
, и ауто
кључне речи односе димензије стазе мреже на садржај који садржи.
мак-цонтент
Тхе мак-цонтент
кључне речи усмерава претраживач да колона мреже мора бити широк као најшири елемент који садржи.
На демо испод, ставио сам а 400пк широка слика у првој мрежи, и користио је следеће ЦСС правило (на крају чланка можете наћи демо Цодепен с пуним измијењеним кодом):
.контејнер грид-темплате-цолумнс: мак-цонтент 1фр 1фр; / ** * Исто са ознаком минмак (): * грид-темплате-цолумнс: минмак (мак-цонтент, мак-цонтент) 1фр 1фр; * /
Нисам користио минмак ()
нотација још, али у коментару изнад кода можете видети како ће изгледати исти код (иако је сувишно овде).
Као што можете видјети, први ступац мреже је широк као и његов најшири елемент (овдје слика). На овај начин корисници могу увијек видјети слику у пуној величини. Међутим, под одређеном величином приказа, овај распоред је не одговара.
мин-цонтент
Тхе мин-цонтент
кључне речи усмерава прегледач да колона мреже мора бити широка као најужи елемент који садржи, на неки начин не доводи до преливања.
Погледајмо како изгледа претходни демо са сликом ако промијенимо вриједност прве колоне у мин-цонтент
:
.контејнер грид-темплате-цолумнс: мин-цонтент 1фр 1фр; / ** * Исто са минмак () нотацијом: * грид-темплате-цолумн: минмак (мин-цонтент, мин-цонтент) 1фр 1фр; * /
Оставио сам зелену позадину испод слике тако да можете видјети пуну величину прве ћелије мреже.
Као што видите, прва колона задржава најмању ширину може се постићи без преливања. У овом примеру, то ће бити дефинисано минималном ширином 4. и 7. ћелије решетке, која потиче из паддинг
и фонт-сизе
својства, као слика у првој ћелији може се смањити на нулу без преливања.
Ако ћелија мреже садржи текстуални низ, мин-цонтент
би једнака ширини најдуже речи, пошто је то најмањи елемент који се не може даље смањивати без преливања. Ево одличног чланка од БитсОфЦоде где можете видети како мин-цонтент
и мак-цонтент
понашају се када мрежна ћелија садржи текстуални низ.
Користећи мин-цонтент
и мак-цонтент
заједно
Ако смо ми користити мин-цонтент
и мак-цонтент
заједно унутар минмак ()
функција добијамо колону мреже која:
- је одговоран
- нема преливања
- не расте шире од најширег елемента
.контејнер грид-темплате-цолумнс: минмак (мин-цонтент, мак-цонтент) 1фр 1фр;
Можемо користити и мин-цонтент
и мак-цонтент
кључне речи заједно са другим вредностима дужине унутар минмак ()
функција, све док правило има смисла. На пример, минмак (25%, мак-цонтент)
или минмак (мин-цонтент, 300пк)
би била оба важећа правила.
ауто
Коначно, можемо користити и ауто
кључне речи као аргумент минмак ()
функције.
Када ауто
је користи се као максимум, његова вредност је идентична мак-цонтент
.
Када је користи се као минимум, његова вредност је одређена од стране мин-видтх / мин-хеигхт
то значи ауто
понекад је идентичан мин-цонтент
, али не увек.
У нашем претходном примеру, мин-цонтент
не једнако ауто
, пошто је минимална ширина прве колоне мреже увек мања од минималне висине. Дакле, припадајуће ЦСС правило:
.контејнер грид-темплате-цолумнс: минмак (мин-цонтент, мак-цонтент) 1фр 1фр;
може бити и овако написано:
.контејнер грид-темплате-цолумнс: минмак (ауто, ауто) 1фр 1фр;
Тхе ауто
кључна реч такође може бити користи се заједно са другим статичким и динамичким јединицама (пиксели, фр јединица, проценти, итд.) унутар минмак ()
функција минмак (ауто, 300пк)
би било ваљано правило.
Можете тестирати како мин-цонтент
, мак-цонтент
, и ауто
кључне речи раде са минмак ()
функција у следећем приказу кодног кода: