Bootstrap 3 Succinctly Migrerer fra versjon 2 til versjon 3

Så hva er involvert i å migrere fra Bootstrap 2 til Bootstrap 3? I sannhet, ikke mye. 

Til tross for de mange endringene er det fortsatt ikke mye penger for deg å faktisk forandre seg, og endringene du må gjøre er vanligvis bare klassenavnet om det er aktuelt. 

En av de tingene du kanskje vil gjøre, spesielt hvis du har brukt BS bare for generell webapputvikling og ikke mobil eller noen form for responsiv design, er å deaktivere de responsive funksjonene i BS3. 

Dette er lett nok å gjøre, men ikke i det hele tatt anbefalt. 

Du kan oppnå dette på følgende måte: 

  • Ikke legg til metatag som inneholder enhetens bredde og annen innledende størrelsesinfo til hodet på dokumentet. 
  • Overstyr breddepå elementene dine som er merket opp med en klasse av container, og sørg for at du bruker style = 'width: xxx! important'når du gjør det. 
  • Sørg for at eventuelle overtrengninger i bredden behandles etter De viktigste Bootstrap CSS-reglene er lastet inn. 
  • Ikke fjern alle kollapser og utvider atferd og regler fra alle navbarkonstruerer i dokumentet ditt. 
  • Endre alle grid layout klasser å bruke bare col-XS *klasser og ingen av de andre fire nivåene. 

Hvis du målretter mot IE8 og IE9, må du fortsatt sørge for at du bruker respond.js, selv om du deaktiverer responsen som beskrevet. 

Klasseendringer

Som nevnt tidligere har det vært mange klassenavnsendringer mellom de to versjonene, og mange klasser er blitt avskrevet og trukket tilbake. 

En ting som vil (og allerede har hvis du ser på Stack Overflow) kommer som en overraskelse for mange er tilbaketrekking av fluidbreddklassene. 

I versjon 2, hvis du ville ha en elastisk beholder med full bredde, måtte du gjøre noe som følger: 

Et overskrift

Noen avsnitt tekst

I versjon 3 containerog p-fluidklasser eksisterer ikke lenger. 

Så hvordan får du en væskebeholder? Enkelt: det gjør du ikke. 

Snarere enn å pakke inn innholdet i en containerog deretter a rad, du slår dem ikke inn i noe. 

Du kan fortsatt bruke rutenettet til å legge inn beholdere for innholdet ditt, slik at det går bra med Bootstraps rutenett, men du trenger ikke lenger å sette en beholder rundt de samlingene av

elementer før du bruker dem. 

Faktisk, hvis du bruker containerog rad(de ikke-flytende versjonene eksisterer fortsatt), så vil du ende opp med at alt innholdet ditt befinner seg i 1024 piksler, midtkolonne automatisk, og kunne bruke hele sidebredden hvis du ikke gjør det. 

Migrerer rutenettet 

Da er neste største klasseskift selve rutenettet. 

I versjon 2 opprettet du vanligvis ruter på følgende måte: 

Innhold her
Innhold her

Denne koden vil gi deg to beholdere som nettopp fylte 12 rutekvadratene horisontalt slik at alle layoutene hadde (vanligvis en sidelinje). 

I versjon 3 er "medium level" nettverket nå ekvivalent til v2 spanklasser, så å omskrive den forrige koden for V3 gjør du bare følgende: 

Innhold her
Innhold her

Imidlertid, mens versjon 2 bare hadde et nivå av gridstørrelse, har versjon 3 nå fire nivåer. Hvert nivå er skreddersydd for den forventede hovedmålingsenheten som du forventer at sluttproduktet skal kjøre på. 

Disse rutenettene heter nå som følger: 

  • Ekstra små enheter: col-XS *
  • Små enheter: col-SM- *
  • Medium enheter: col-MD- *
  • Store enheter: col-lg- *

Medieforespørsler brukes internt for BS3 for å bestemme hvilken av de nevnte gridklassene som skal brukes, og de forskjellige størrelsene er definert som følger: 

  • Ekstra liten: Skjermbredde mindre enn 768 piksler 
  • Liten: Skjermbredde større enn eller lik 768 piksler, eller mindre enn 992 piksler 
  • Medium: Skjermbredde større enn eller lik 992 piksler, eller mindre enn 1200 piksler 
  • Stor: Skjermbredde større enn eller lik 1200 piksler 

Du kan kodes opp flere versjoner av rutenettet for BS3 for å bestemme hvilken type som skal brukes når du målretter mot flere skjermer. For eksempel hvis du gjorde følgende: 

Innhold her
Innhold her
Innhold her
Innhold her
Innhold her
Innhold her
Innhold her
Innhold her

BS3 vil gjemme og gjemme beholderne etter behov, avhengig av bredden på skjermbildet og driften av medieforespørrelsene. 

Som med tidligere versjoner av rutenettet, er det 12 kolonner horisontalt over alle de forskjellige størrelsene, slik at hvilken gridstørrelse som vises, vil du alltid få 12 ruter på hver enhet. 

Kolonnebredden selv endres imidlertid, så du må kanskje planlegge innholdet i disse nettene for å dra nytte av de forskjellige størrelsene. Størrelsene for hver av dem er som følger: 

  • col-XS *= Automatisk størrelse, ingen faste dimensjoner 
  • col-SM- *= 60 piksler 
  • col-MD- *= 78 piksler 
  • col-lg- *= 95 piksler 

Guttermarginen vil i alle tilfeller forbli på 15 piksler på hver side av rutenettbeholderen, noe som gir en samlet renner på 30 piksler. Denne størrelsen vil være konsistent uansett hvilket gridstørrelsesnivå du bruker. 

Nesting og offsets fungerer som de gjorde tidligere, men som med nettene selv, ved en liten omdøping av de faktiske klassene som brukes. 

For å bruke en forskyvning, bruk bare col-md-offset- *, husker å erstatte mdmed xs, sm, eller lgetter behov, avhengig av rutenettstørrelsen. 

Nesting er gjort bare ved å nesting beholdere under kontroll av col-xx- *klasser i hverandre, hvor de vil endre størrelse og oppføre seg som de gjorde i tidligere BS-versjoner. 

Følgende eksempler viser den riktige måten å oppnå begge disse teknikkene på: 

Nivå 1: .col-md-9
Nivå 2: .col-md-6
Nivå 2: .col-md-6

Dette eksempelet gir deg et rutenett som ser ut som følgende: 

.col-md-4
.col-md-4. col-md-offset-4
.col-md-3. col-md-offset-3
.col-md-3. col-md-offset-3
.col-md-6. col-md-offset-3

Dette eksempelet gir deg et oppsett som følger: 

BS3 bringer også noe nytt til bordet når det gjelder offsetting og nesting, og det er noe som kalles kolonnebestilling. 

Hvis du vil at kolonnene dine skal presenteres i en annen rekkefølge til hvordan du definerer dem i HTML-dokumentet ditt, kan du bruke den nye col-xx-trekk- *og col-xx-push *klasser for å skyve eller trekke gridoppsettene i den rekkefølgen du vil ha dem. For eksempel: 

8 kolonner med innhold
4 kolonner med innhold

Hvis du gjør dem i dokumentet, får du følgende, som forventet: 

Hvis du imidlertid endrer ovennevnte kode for å legge til trykk og trekk modifikatorer som følger: 

8 kolonner med innhold
4 kolonner med innhold

Når du gjør dokumentet ditt, bør du se oppsettendringen din på følgende måte: 

Til slutt, hvis du bruker Mindre CSS kildeversjoner av Bootstrap, du har full kontroll over gridstørrelsene ved å endre følgende variabler: 

  • @ gittersøyler: styrer antall rister horisontalt (standard 12) 
  • @ Gitter-rennebredde: totalmarginen rundt hvert rutenett (standard 30 piksler) 
  • @ Gitter-float-stoppunkt: Minimumstørrelsen under som vi har "ekstra små" enheter (standard 768 piksler) 

Så nå at vi har det nye rutenettet under kontroll, er det noe annet du trenger å vite? 

Jo mer sparsomme av deg kan tenke, "Men det er galt - med alle de flere settene av

elementer og offsets med col-xx-xxklasser, alt for forskjellige størrelsesdisplayer, kan jeg også bare lage fire forskjellige sider, med fire forskjellige oppløsninger i tankene! "For å være ærlig, ville jeg ikke klandre deg, bortsett fra én ting: hver av disse nye størrelsesnivåene er utformet for å fungere på samme oppskrift, samtidig, og opptar samme plass. 

La oss ta koden i forrige kodeeksempel 4, og skriv om det for å gjøre dette på den anbefalte måten: 

Innhold her
Innhold her

Ok, så du kan ende opp med klasselisten fra helvete på elementene dine, men ett sett med oppslag vil tilpasse seg alle visningsstørrelser, og endre størrelsen på det der det trengs. 

Dette fungerer også med de ulike offset-, bestillings- og nesteklassene.

Andre overføringer  

I tillegg til de som vi allerede har diskutert, må følgende klassenavn også endres hvis du migrerer fra et V2-layout til et V3-layout (Merk: Følgende tabell er tatt direkte fra Bootstrap 3 docs og var riktig på tidspunktet for skriving. Da Bootstrap modnes, kan dette imidlertid ikke forbli så). 

Bootstrap versjon 2 klassenavn Bootstrap versjon 3 klassenavn
.kontroll-group.warning .kontroll-group.error .kontroll-group.success .form group.has- *
.checkbox.inline .radio.inline .avkrysnings-inline .radio-inline
.Inngang-foranstilt .inngang tilføying .Inngang-gruppe
.tillegg .Inngang-gruppe-addon
.img-polaroid .img-thumbnail
ul.unstyled .list-unstyled
ul.inline .list-inline
.dempet .tekst-dempet
.merkelapp .label .label-default
.etiketten viktig .label-fare
.tekst-feil .tekst-fare
.tabell .error .bord .danger
.Bar .Progress-bar
.bar- *
.fremgang-bar- *
.trekkspill .panel-gruppe
.trekkspill-gruppe .panel .panel-standard
.trekkspill rubrikken .panel rubrikken
.trekkspill-legeme .panel-kollaps
.trekkspill-indre .panel-legeme

Som tidligere nevnt har de fleste endringene blitt gjort for å bringe samsvar med navngivningssystemet som brukes av de ulike klassene. Men mange av dem har også blitt omdøpt fordi deres overordnede formål har endret seg. 

Vi vil gå nærmere inn i kommende opplæringsprogrammer i denne serien, men for nå, hvis du gjør en konvertering, vil tabell 2 fortell deg alt du trenger for å retarget et v2-layout til v3. 

Du vil kanskje vurdere å bruke en egendefinert jobb i noe som en Grunt.js-oppgave, slik at når du kjører ditt byggesystem, utføres disse endringene automatisk. Dette gjør at utviklerne dine kan forbli produktive ved hjelp av v2, mens de gradvis gjør flyttingen til v3. 

Så hva har akkurat blitt lagt til Bootstrap som er nytt, og hva som nettopp er fjernet? 

Vi starter med det som er fjernet, og vi vil dekke hva som er lagt til mer detaljert i opplæringen om "Endrede CSS-funksjoner". Det er viktigere at du vet hva som er fjernet i denne opplæringen, siden dette er opplæringen du ' Sannsynligvis refererer til når migrering av layoutene dine 

Først begynner vi med det som er fjernet der skjemaene er bekymret, og dessverre er det ganske mye. Vi har ikke lenger en bestemt type for et søkeskjema skjema-søk, og den skyggefulle linjen finnes vanligvis ved foten av en form Form handlingerhar også blitt avskrevet i v3. 

Også borte er klassen vanligvis brukt til å vise valideringsfeil, kontroll-gruppe-info, og det hjelper motparten, help-inline. Ingen av disse fire klassene har noen anbefalt erstatning i v3-kodebase, noe som betyr at for å konstruere ekvivalenter av dem, må du bruke andre elementer og klasser der det er aktuelt. 

Fortsetter med skjemaer, den viktigste kontrollerKlassen som brukes til å vikle hele kontrollsettene er borte, sammen med kontroller rad. I stedet anbefales det å bruke radeller den nye skjema-gruppe klasse. Skjemaer har også mistet de fleste dimensjoneringsklassene; den faste størrelsen klasser som Inngang-mini, Inngang-small, inngang-mellom, Inngang-large, Inngang-XLarge, og Inngang-XXLargehar nå alle gått vekk, sammen med blokknivå kontroll klassen Inngang-blokknivå. I stedet blir du nå rådet til å kontrollere formelementstørrelsene dine ved hjelp av formkontrolli kombinasjon med de nye størrelsene og layoutene som er tilgjengelige i rutenettet. 

Fra et individuelt kontrollsynspunkt er omvendtKlasser har blitt fjernet fra knapper og andre lignende kontroller, og vi har også mistet dropdown-undermenyklasse til fordel for bare å bruke delt nedtrekksknapper for å skape den samme funksjonaliteten. 

For faner, er faner til venstre, faner til høyre, og faner-nedenforklasser eksisterer ikke lenger, noe som betyr at vi nå bare har muligheten til å sette faner øverst på innholdet, venstrejustert. 

Å holde seg til faner, klassen til å jobbe med innhold i en pillebasert tabulatoroppsett, har også blitt fjernet, noe som betyr det pille-paneletog pille-innholdbør nå bruke den generelle tab-innhold og tab-paneletklasser. 

Til slutt, de forskjellige navbarklasser er ikke uten tap: navbar-indre, navbar divider-vertikalnav-liste, og nav-headerer ikke lenger en del av rammen. 

I de fleste tilfeller er det ingen direkte ekvivalenter i v3 for disse klassene, selv om det er noen likheter i andre klasser som kan vise seg å være nyttige. For eksempel, nav-listeog nav-headerkan gjenskapes ved hjelp av Listegrupper. 

Det er et raskt referanseoversikt for alle disse i overføringsveiledningen på Bootstrap 3-nettstedet.

Denne opplæringen representerer et kapittel fra Bootstrap 3 Succinctly, en gratis eBok fra teamet ved Syncfusion.