Přístup
Seznamte se s hlavními principy, strategiemi a technikami používanými k vytvoření a údržbě Bootstrapu, abyste si jej mohli snadněji přizpůsobit a rozšířit sami.
Zatímco stránky Začínáme poskytují úvodní prohlídku projektu a toho, co nabízí, tento dokument se zaměřuje na to, proč děláme věci, které v Bootstrapu děláme. Vysvětluje naši filozofii budování na webu, aby se od nás ostatní mohli učit, přispívat s námi a pomáhat nám zlepšovat se.
Vidíte něco, co nezní správně, nebo by to možná šlo udělat lépe? Otevřete problém – rádi ho s vámi probereme.
souhrn
Do každého z nich se ponoříme více v průběhu, ale na vysoké úrovni, zde je to, co řídí náš přístup.
- Komponenty by měly být responzivní a především mobilní
- Komponenty by měly být sestaveny se základní třídou a rozšířeny pomocí tříd modifikátorů
- Stavy komponent by se měly řídit běžnou stupnicí z-indexu
- Kdykoli je to možné, upřednostňujte implementaci HTML a CSS před JavaScriptem
- Kdykoli je to možné, používejte nad vlastními styly nástroje
- Kdykoli je to možné, vyhněte se vynucování přísných požadavků na HTML (dětské selektory)
Responzivní
Responzivní styly Bootstrapu jsou vytvořeny tak, aby byly responzivní, což je přístup, který je často označován jako mobile-first . Tento termín používáme v našich dokumentech a do značné míry s ním souhlasíme, ale někdy může být příliš široký. I když ne každá komponenta musí být v Bootstrapu zcela responzivní, tento citlivý přístup spočívá v omezení přepisů CSS tím, že vás nutí přidávat styly, když se výřez zvětšuje.
V rámci Bootstrapu to nejzřetelněji uvidíte v dotazech na média. Ve většině případů používáme min-width
dotazy, které se začnou uplatňovat v určitém bodu přerušení a procházejí vyššími body přerušení. Například a .d-none
platí od min-width: 0
do nekonečna. Na druhou stranu .d-md-none
platí a od středního bodu zlomu a výše.
Někdy použijeme, max-width
když to vyžaduje složitost součásti. Někdy je implementace a podpora těchto přepsání funkčně a mentálně jasnější než přepisování základních funkcí z našich komponent. Snažíme se tento přístup omezit, ale čas od času jej využijeme.
Třídy
Kromě našeho Reboot, šablony stylů pro normalizaci napříč prohlížeči, se všechny naše styly zaměřují na použití tříd jako selektorů. To znamená vyhýbat se selektorům typu (např. input[type="text"]
) a cizím nadřazeným třídám (např. .parent .child
), které činí styly příliš specifickými, aby je bylo možné snadno přepsat.
Komponenty jako takové by měly být postaveny se základní třídou, která obsahuje společné, nepřepisovatelné páry vlastnost-hodnota. Například .btn
a .btn-primary
. Používáme .btn
pro všechny běžné styly jako display
, padding
, a border-width
. Poté používáme modifikátory, jako .btn-primary
je přidání barvy, barvy pozadí, barvy okraje atd.
Třídy modifikátorů by se měly používat pouze v případě, že existuje více vlastností nebo hodnot, které lze změnit ve více variantách. Modifikátory nejsou vždy nutné, takže se ujistěte, že skutečně ukládáte řádky kódu a předcházíte zbytečným přepisům při jejich vytváření. Dobrými příklady modifikátorů jsou naše barevné třídy motivů a varianty velikostí.
stupnice z-indexu
Bootstrap má dvě z-index
měřítka – prvky v rámci komponenty a překryvné komponenty.
Komponentní prvky
- Některé komponenty v Bootstrap jsou vytvořeny s překrývajícími se prvky, aby se zabránilo dvojitým okrajům bez úpravy
border
vlastnosti. Například skupiny tlačítek, vstupní skupiny a stránkování. - Tyto komponenty sdílejí standardní
z-index
měřítko0
průchozí3
. 0
je výchozí (počáteční),1
je:hover
,2
je:active
/.active
a3
je:focus
.- Tento přístup odpovídá našim očekáváním nejvyšší uživatelské priority. Pokud je prvek zaměřen, je v dohledu a v pozornosti uživatele. Aktivní prvky jsou druhé nejvyšší, protože indikují stav. Umístění kurzoru je třetí nejvyšší, protože naznačuje záměr uživatele, ale umístit lze téměř cokoli .
Překryvné komponenty
Bootstrap obsahuje několik komponent, které fungují jako určitý druh překrytí. To zahrnuje, v pořadí od nejvyššího z-index
, rozbalovací nabídky, pevné a pevné navigační panely, modály, popisky a vyskakovací okna. Tyto komponenty mají svou vlastní z-index
stupnici, která začíná na 1000
. Toto startovní číslo bylo zvoleno libovolně a slouží jako malý nárazník mezi našimi styly a vlastními styly vašeho projektu.
Každá překryvná komponenta mírně zvyšuje svou z-index
hodnotu takovým způsobem, že běžné principy uživatelského rozhraní umožňují, aby prvky zaměřené na uživatele nebo prvky, na které se vznáší, zůstaly neustále v dohledu. Například modal je blokování dokumentů (např. nemůžete provést žádnou jinou akci kromě akce modalu), takže to dáme nad naše navigační lišty.
Více se o tom dozvíte na naší z-index
stránce rozvržení .
HTML a CSS přes JS
Kdykoli je to možné, dáváme přednost psaní HTML a CSS před JavaScriptem. Obecně platí, že HTML a CSS jsou plodnější a přístupné více lidem na různých úrovních zkušeností. HTML a CSS jsou také ve vašem prohlížeči rychlejší než JavaScript a váš prohlížeč vám obecně poskytuje velké množství funkcí.
Tímto principem je naše prvotřídní JavaScript API využívající data
atributy. Abyste mohli používat naše JavaScript pluginy, nepotřebujete psát téměř žádný JavaScript; místo toho napište HTML. Přečtěte si o tom více na naší stránce s přehledem JavaScriptu .
A konečně, naše styly staví na základním chování běžných webových prvků. Kdykoli je to možné, dáváme přednost tomu, co poskytuje prohlížeč. Například můžete umístit .btn
třídu na téměř jakýkoli prvek, ale většina prvků neposkytuje žádnou sémantickou hodnotu ani funkčnost prohlížeče. Takže místo toho použijeme <button>
s a <a>
s.
Totéž platí pro složitější komponenty. I když bychom mohli napsat vlastní plugin pro ověřování formulářů, který by přidával třídy do nadřazeného prvku na základě stavu vstupu, což nám umožňuje stylovat text řekněme červeně, dáváme přednost použití :valid
/ :invalid
pseudoprvků, které nám poskytuje každý prohlížeč.
Utility
Obslužné třídy – dříve pomocníci v Bootstrap 3 – jsou mocným spojencem v boji proti nadýmání CSS a špatnému výkonu stránky. Užitková třída je typicky jeden neměnný pár vlastnost-hodnota vyjádřený jako třída (např. .d-block
reprezentuje display: block;
). Jejich primární přitažlivost je rychlost použití při psaní HTML a omezení množství vlastních CSS, které musíte napsat.
Konkrétně pokud jde o vlastní CSS, mohou nástroje pomoci v boji proti zvětšující se velikosti souboru tím, že zredukují nejčastěji se opakující páry vlastnost-hodnota do jednotlivých tříd. To může mít ve vašich projektech dramatický efekt.
Flexibilní HTML
I když to není vždy možné, snažíme se vyhnout přílišnému dogmatismu v našich požadavcích HTML na komponenty. V našich selektorech CSS se tedy zaměřujeme na jednotlivé třídy a snažíme se vyhnout okamžitým selektorům dětí ( >
). To vám dává větší flexibilitu při implementaci a pomáhá udržovat naše CSS jednodušší a méně konkrétní.
Kodexové konvence
Code Guide (od spolutvůrce Bootstrap, @mdo) dokumentuje, jak píšeme naše HTML a CSS v Bootstrapu. Specifikuje pokyny pro obecné formátování, výchozí hodnoty zdravého rozumu, pořadí vlastností a atributů a další.
K prosazení těchto a dalších standardů v našem Sass/CSS používáme Stylelint . Naše vlastní konfigurace Stylelint je open source a je k dispozici ostatním k použití a rozšíření.
Vnu-jar používáme k vynucení standardního a sémantického HTML a také k detekci běžných chyb.