Atraskite šiuolaikines CSS technikas, neapsiribojant karkasais, tokiais kaip Bootstrap. Išmokite naudoti CSS Grid, Flexbox, Pasirinktines savybes ir daugiau, kad kurtumėte našias ir lengvai prižiūrimas svetaines.
Šiuolaikinis CSS: Anapus Bootstrap ir karkasų
Daugeliui programuotojų kelionė į interneto svetainių kūrimą prasideda nuo CSS karkasų, tokių kaip Bootstrap ar Foundation. Šie karkasai suteikia greitą ir paprastą būdą kurti adaptyvias ir vizualiai patrauklias svetaines. Tačiau, pasikliaujant vien karkasais, galima susidurti su išpūstu kodu, pritaikymo galimybių trūkumu ir ribotu pagrindinių CSS koncepcijų supratimu. Šiame straipsnyje nagrinėjama, kaip pereiti nuo karkasų ir pasitelkti šiuolaikines CSS technikas, kad būtų galima kurti našesnes, lengviau prižiūrimas ir labiau individualizuotas svetaines.
CSS karkasų žavesys ir apribojimai
CSS karkasai suteikia keletą privalumų:
- Greitas kūrimas: Iš anksto paruošti komponentai ir įrankiai ženkliai pagreitina kūrimo procesą.
- Adaptyvus dizainas: Karkasai paprastai apima adaptyvius tinklelius ir komponentus, kurie prisitaiko prie skirtingų ekrano dydžių.
- Suderinamumas su įvairiomis naršyklėmis: Karkasai dažnai sprendžia suderinamumo problemas tarp naršyklių, užtikrindami nuoseklią vartotojo patirtį.
- Bendruomenės palaikymas: Didelės bendruomenės suteikia gausybę išteklių, dokumentacijos ir pagalbos.
Tačiau karkasai turi ir apribojimų:
- Išpūstas kodas: Karkasuose dažnai yra stilių ir komponentų, kurių jums nereikia, todėl CSS failai tampa didesni, o puslapiai kraunasi lėčiau.
- Pritaikymo galimybių trūkumas: Karkaso stilių perrašymas gali būti sudėtingas ir sukelti specifiškumo problemų.
- Ribotas CSS supratimas: Pasikliaujant vien karkasais, gali nukentėti jūsų fundamentalių CSS koncepcijų supratimas.
- Priklausomybė nuo atnaujinimų: Karkasų atnaujinimai gali įvesti kritinių pakeitimų, dėl kurių teks perrašyti kodą.
- Bendrinė išvaizda ir pojūtis: Svetainės, sukurtos naudojant tą patį karkasą, dažnai atrodo panašiai, todėl sunku sukurti unikalų prekės ženklo identitetą.
Šiuolaikinių CSS technikų pritaikymas
Šiuolaikinis CSS siūlo galingas funkcijas, kurios leidžia kurti sudėtingus išdėstymus, stulbinančias animacijas ir rašyti lengviau prižiūrimą kodą, stipriai nepasikliaujant karkasais.
1. CSS Grid išdėstymas
CSS Grid Layout yra dvimatė išdėstymo sistema, leidžianti lengvai kurti sudėtingus tinklelio pagrindu veikiančius išdėstymus. Ji suteikia galingus įrankius elementų išdėstymui ir dydžio nustatymui tinklelio konteineryje kontroliuoti.
Pavyzdys: Paprasto tinklelio išdėstymo kūrimas
.container {
display: grid;
grid-template-columns: 1fr 1fr 1fr; /* Trys lygūs stulpeliai */
grid-gap: 20px; /* Tarpas tarp tinklelio elementų */
}
.item {
background-color: #f0f0f0;
padding: 20px;
}
CSS Grid privalumai:
- Dvimatis išdėstymas: Lengvai kurkite sudėtingus išdėstymus su eilutėmis ir stulpeliais.
- Lankstumas: Tiksliai valdykite elementų išdėstymą ir dydį.
- Adaptyvumas: Kurkite adaptyvius išdėstymus, kurie prisitaiko prie skirtingų ekrano dydžių.
- Semantinis HTML: Naudokite semantinį HTML, nepasikliaudami prezentacinėmis klasėmis.
2. Flexbox išdėstymas
Flexbox Layout yra vienmatė išdėstymo sistema, suteikianti lankstų būdą paskirstyti erdvę tarp elementų konteineryje. Ji idealiai tinka kuriant navigacijos meniu, lygiuojant elementus ir kuriant adaptyvius komponentus.
Pavyzdys: Horizontalaus navigacijos meniu kūrimas
.nav {
display: flex;
justify-content: space-between; /* Tolygiai paskirstyti elementus */
align-items: center; /* Vertikaliai lygiuoti elementus */
}
.nav-item {
margin: 0 10px;
}
Flexbox privalumai:
- Vienmatis išdėstymas: Efektyviai išdėstykite elementus eilutėje ar stulpelyje.
- Lygiavimas: Lengvai lygiuokite elementus horizontaliai ir vertikaliai.
- Erdvės paskirstymas: Kontroliuokite, kaip erdvė paskirstoma tarp elementų.
- Adaptyvumas: Kurkite adaptyvius komponentus, kurie prisitaiko prie skirtingų ekrano dydžių.
3. CSS pasirinktinės savybės (kintamieji)
CSS pasirinktinės savybės, dar žinomos kaip CSS kintamieji, leidžia apibrėžti pakartotinai naudojamas reikšmes, kurias galima pritaikyti visame CSS kode. Tai daro jūsų kodą lengviau prižiūrimą, lankstesnį ir paprasčiau atnaujinamą.
Pavyzdys: Pagrindinės spalvos apibrėžimas ir naudojimas
:root {
--primary-color: #007bff;
}
.button {
background-color: var(--primary-color);
color: white;
}
CSS pasirinktinių savybių privalumai:
- Prižiūrimumas: Lengvai atnaujinkite reikšmes vienoje vietoje, o ne keliose.
- Temų kūrimas: Kurkite skirtingas temas keisdami pasirinktinių savybių reikšmes.
- Lankstumas: Dinamiškai atnaujinkite pasirinktines savybes naudojant JavaScript.
- Organizavimas: Pagerinkite kodo organizavimą ir skaitomumą.
4. CSS moduliai
CSS moduliai yra būdas rašyti CSS, kuris yra priskirtas konkrečiam komponentui. Tai apsaugo nuo pavadinimų konfliktų ir daro jūsų CSS modularesnį bei lengviau prižiūrimą. Nors tai nėra integruota CSS funkcija, jie dažnai naudojami su kūrimo įrankiais, tokiais kaip Webpack ar Parcel.
Pavyzdys: CSS modulių naudojimas su React komponentu
// Button.module.css
.button {
background-color: #007bff;
color: white;
padding: 10px 20px;
}
// Button.js
import styles from './Button.module.css';
function Button(props) {
return ;
}
export default Button;
CSS modulių privalumai:
- Apimties apribojimas (Scoping): Apsaugokite nuo pavadinimų konfliktų, priskirdami CSS konkrečiam komponentui.
- Moduliškumas: Kurkite modulinius ir pakartotinai naudojamus CSS komponentus.
- Prižiūrimumas: Pagerinkite kodo organizavimą ir prižiūrimumą.
- Lokalumas: Lengviau suprasti, koks CSS taikomas konkrečiam komponentui.
5. CSS preprocesoriai (Sass, Less)
CSS preprocesoriai, tokie kaip Sass ir Less, praplečia CSS funkcionalumą pridėdami funkcijų, tokių kaip kintamieji, įdėjimas (nesting), „mixins“ ir funkcijos. Šios funkcijos gali padėti rašyti labiau organizuotą, prižiūrimą ir pakartotinai naudojamą CSS.
Pavyzdys: Sass kintamųjų ir įdėjimo (nesting) naudojimas
$primary-color: #007bff;
.button {
background-color: $primary-color;
color: white;
&:hover {
background-color: darken($primary-color, 10%);
}
}
CSS preprocesorių privalumai:
- Kintamieji: Apibrėžkite pakartotinai naudojamas reikšmes spalvoms, šriftams ir kitoms savybėms.
- Įdėjimas (Nesting): Įdėkite CSS taisykles, kad sukurtumėte hierarchiškesnę struktūrą.
- „Mixins“: Apibrėžkite pakartotinai naudojamus CSS kodo blokus.
- Funkcijos: Atlikite skaičiavimus ir manipuliacijas su CSS reikšmėmis.
- Prižiūrimumas: Pagerinkite kodo organizavimą ir prižiūrimumą.
6. CSS-in-JS
CSS-in-JS yra technika, apimanti CSS rašymą tiesiogiai JavaScript komponentuose. Šis metodas siūlo keletą privalumų, įskaitant komponento lygio stilių kūrimą, dinaminį stilių pritaikymą ir geresnį našumą.
Pavyzdys: „styled-components“ naudojimas su React
import styled from 'styled-components';
const Button = styled.button`
background-color: #007bff;
color: white;
padding: 10px 20px;
&:hover {
background-color: darken(#007bff, 10%);
}
`;
function MyComponent() {
return ;
}
CSS-in-JS privalumai:
- Komponento lygio stiliai: Stilizuokite komponentus tiesiogiai JavaScript.
- Dinaminis stilių pritaikymas: Dinamiškai atnaujinkite stilius, atsižvelgiant į komponento būseną ar savybes (props).
- Geresnis našumas: Generuokite optimizuotą CSS vykdymo metu.
- Jokių pavadinimų konfliktų: Venkite pavadinimų konfliktų su unikaliais klasių pavadinimais.
7. Atominis CSS (Funkcinis CSS)
Atominis CSS, dar žinomas kaip Funkcinis CSS, yra CSS rašymo metodas, apimantis mažų, vienos paskirties CSS klasių kūrimą. Šios klasės yra derinamos tarpusavyje, siekiant stilizuoti elementus. Šis metodas gali padėti sukurti lengviau prižiūrimą ir pakartotinai naudojamą CSS, tačiau HTML kodas gali tapti labai išsamus.
Pavyzdys: Atominių CSS klasių naudojimas
Atominio CSS privalumai:
- Pakartotinis naudojimas: Pakartotinai naudokite CSS klases keliems elementams.
- Prižiūrimumas: Lengvai atnaujinkite stilius, keisdami vieną CSS klasę.
- Našumas: Sumažinkite CSS failo dydį, pakartotinai naudodami esamas klases.
- Nuoseklumas: Užtikrinkite nuoseklų stilių visoje svetainėje.
Dizaino sistemos kūrimas su šiuolaikiniu CSS
Dizaino sistema yra pakartotinai naudojamų komponentų ir gairių rinkinys, užtikrinantis nuoseklumą ir efektyvumą projektavimo ir kūrimo procese. Šiuolaikinės CSS technikos gali atlikti lemiamą vaidmenį kuriant tvirtą ir plečiamą dizaino sistemą.
Pagrindiniai aspektai kuriant dizaino sistemą:
- Komponentų biblioteka: Sukurkite pakartotinai naudojamų UI komponentų biblioteką su aiškiai apibrėžtais stiliais ir elgsenomis.
- Stiliaus vadovas: Dokumentuokite dizaino principus, tipografiją, spalvų paletę ir kitas stiliaus gaires.
- CSS architektūra: Pasirinkite CSS architektūrą, kuri skatina prižiūrimumą ir plečiamumą, pavyzdžiui, BEM, OOCSS ar Atominis CSS.
- Temų kūrimas: Įgyvendinkite temų sistemą, kuri leidžia lengvai perjungti skirtingas temas.
- Prieinamumas: Užtikrinkite, kad visi komponentai būtų prieinami vartotojams su negalia.
Pavyzdys: Dizaino sistemos struktūravimas naudojant pasirinktines savybes
:root {
/* Spalvos */
--primary-color: #007bff;
--secondary-color: #6c757d;
--accent-color: #ffc107;
/* Tipografija */
--font-family: sans-serif;
--font-size-base: 16px;
/* Tarpai */
--spacing-sm: 8px;
--spacing-md: 16px;
--spacing-lg: 24px;
}
CSS našumo optimizavimas
CSS našumo optimizavimas yra labai svarbus siekiant užtikrinti greitą ir sklandžią vartotojo patirtį. Štai keletas patarimų, kaip pagerinti CSS našumą:
- Minimizuokite CSS: Pašalinkite nereikalingus simbolius ir tarpus iš savo CSS failų, kad sumažintumėte jų dydį.
- Suspauskite CSS: Naudokite Gzip ar Brotli suspaudimą, kad dar labiau sumažintumėte CSS failų dydį.
- Sujunkite CSS failus: Sujunkite kelis CSS failus į vieną, kad sumažintumėte HTTP užklausų skaičių.
- Naudokite CDN: Pateikite savo CSS failus iš turinio pristatymo tinklo (CDN), kad pagerintumėte įkėlimo laiką vartotojams visame pasaulyje.
- Venkite @import: Venkite naudoti @import taisyklę, nes ji gali sulėtinti puslapio atvaizdavimą.
- Optimizuokite selektorius: Naudokite efektyvius CSS selektorius, kad sutrumpintumėte laiką, kurio reikia naršyklei pritaikyti stilius.
- Pašalinkite nenaudojamą CSS: Pašalinkite bet kokį CSS kodą, kuris nėra naudojamas jūsų svetainėje. Įrankiai, tokie kaip PurgeCSS ir UnCSS, gali padėti jums nustatyti ir pašalinti nenaudojamą CSS.
Prieinamumo aspektai
Prieinamumas yra esminis interneto svetainių kūrimo aspektas. Rašant CSS, svarbu atsižvelgti į vartotojų su negalia poreikius.
Pagrindiniai prieinamumo aspektai:
- Semantinis HTML: Naudokite semantinius HTML elementus, kad suteiktumėte struktūrą ir prasmę savo turiniui.
- Spalvų kontrastas: Užtikrinkite pakankamą spalvų kontrastą tarp teksto ir fono spalvų.
- Navigacija klaviatūra: Įsitikinkite, kad jūsų svetainė yra visiškai valdoma naudojant klaviatūrą.
- Fokusavimo indikatoriai: Pateikite aiškius fokusavimo indikatorius interaktyviems elementams.
- ARIA atributai: Naudokite ARIA atributus, kad suteiktumėte papildomos informacijos pagalbinėms technologijoms.
Pavyzdys: Pakankamo spalvų kontrasto užtikrinimas
.button {
background-color: #007bff;
color: white;
}
Šiame pavyzdyje įsitikinkite, kad kontrasto santykis tarp balto teksto ir mėlyno fono atitinka prieinamumo standartus (WCAG 2.1 AA reikalauja, kad kontrasto santykis būtų ne mažesnis kaip 4.5:1 normaliam tekstui ir 3:1 dideliam tekstui).
Perėjimas nuo karkasų: praktinis požiūris
Perėjimas nuo karkasų prie šiuolaikinio CSS nebūtinai turi būti „viskas arba nieko“ principu. Galite palaipsniui įtraukti šiuolaikines CSS technikas į savo esamus projektus.
Veiksmų planas:
- Pradėkite nuo mažų dalykų: Pradėkite naudoti CSS Grid ar Flexbox mažoms išdėstymo užduotims.
- Išmokite pagrindus: Skirkite laiko suprasti pagrindines CSS koncepcijas.
- Eksperimentuokite: Išbandykite įvairias CSS technikas ir pažiūrėkite, kas geriausiai tinka jūsų projektams.
- Palaipsniui perrašykite kodą: Palaipsniui perrašykite esamą kodą, naudodami šiuolaikines CSS technikas.
- Sukurkite komponentų biblioteką: Sukurkite pakartotinai naudojamų CSS komponentų biblioteką.
Išvados
Šiuolaikinis CSS siūlo galingą įrankių rinkinį, skirtą kurti našias, lengvai prižiūrimas ir individualizuotas svetaines. Pereidami nuo karkasų ir pasitelkdami šias technikas, galite gauti daugiau kontrolės savo kodui, pagerinti svetainės našumą ir sukurti unikalų prekės ženklo identitetą. Nors karkasai gali būti naudingas atspirties taškas, šiuolaikinio CSS įvaldymas yra būtinas norint tapti profesionaliu front-end programuotoju. Priimkite iššūkį, tyrinėkite galimybes ir atskleiskite visą CSS potencialą.
Šis vadovas yra skirtas kaip atspirties taškas jūsų kelionei į šiuolaikinį CSS. Nepamirškite tyrinėti oficialios kiekvienos funkcijos dokumentacijos, eksperimentuoti su įvairiomis technikomis ir pritaikyti jas savo konkretiems projekto poreikiams. Sėkmės programuojant!