Bootstrap 3 bondig migreren van versie 2 naar versie 3

Dus wat is er aan de hand bij het migreren van Bootstrap 2 naar Bootstrap 3? In werkelijkheid niet veel. 

Ondanks de vele veranderingen, is er nog steeds geen enorm bedrag voor u om daadwerkelijk te veranderen, en de wijzigingen die u hoeft aan te brengen zijn over het algemeen alleen hernamen van klassen, indien van toepassing. 

Een van de dingen die je zou willen doen, vooral als je BS alleen hebt gebruikt voor algemene webapp-ontwikkeling en niet mobiel of een vorm van responsief ontwerp, is het uitschakelen van de responsieve functies in BS3. 

Dit is gemakkelijk genoeg om te doen, maar helemaal niet aanbevolen. 

U kunt dit als volgt bereiken: 

  • Voeg geen toe metatag die de breedte van het apparaat en andere initiële formaatinformatie bevat naar de kop van uw document. 
  • Overschrijven de breedteop uw elementen die zijn gemarkeerd met een klasse van houder, en zorg ervoor dat je gebruikt style = 'width: xxx! important'wanneer je dat doet. 
  • Zorg er wel voor dat eventuele breedtewijzigingen worden verwerkt na de belangrijkste Bootstrap CSS-regels zijn geladen. 
  • Verwijderen allemaal samenvouwen en uitbreiden van gedrag en regels van allemaal navbarconstructies in uw document. 
  • Wijzig alle te gebruiken roosterlay-outklassen enkel en alleen col-XS- *klassen en geen van de andere vier niveaus. 

Als u IE8 en IE9 target, moet u nog steeds controleren of u respons.js gebruikt, zelfs als u responsiviteit uitschakelt zoals uiteengezet. 

Klasse wijzigingen

Zoals ik al eerder heb vermeld, zijn er tussen de twee versies veel wijzigingen in de naam van de klas aangebracht en zijn veel klassen verouderd en ingetrokken. 

Een ding dat (en al is als je Stack Overflow bekijkt) voor veel mensen een verrassing is, is dat de vloeistofbreedteklassen worden ingetrokken. 

Als u in versie 2 een elastische container met volledige breedte wilde hebben, moest u iets als het volgende doen: 

Een krantenkop

Een paragraaftekst

In versie 3 de houderen rij-vloeistofklassen bestaan ​​niet meer. 

Dus hoe krijg je een vloeistofcontainer? Eenvoudig: jij niet. 

In plaats van je inhoud in te pakken in een houderen dan a rij, je wikkelt ze eenvoudigweg nergens in. 

U kunt het rastersysteem nog steeds gebruiken om omhullende containers voor uw inhoud aan te brengen, zodat de dingen netjes aansluiten bij het raster van Bootstrap, maar u hoeft niet langer een container rond die verzamelingen

elementen voordat u ze gebruikt. 

Sterker nog, als je gebruikt houderen rij(de niet-vloeibare versies bestaan ​​nog steeds), dan komt u automatisch met al uw inhoud in de 1024-pixel centrale kolom en kunt u de volledige paginabreedte gebruiken als u dat niet doet. 

Het rastersysteem migreren 

De grootste verandering daarna is het rastersysteem zelf. 

In versie 2 hebt u normaal gesproken rasters gemaakt op de volgende manier: 

Inhoud hier
Inhoud hier

Deze code geeft je twee containers die netjes de twaalf rastervakken horizontaal vullen die alle lay-outs hadden (meestal een zijbalk). 

In versie 3 is het "medium level" -raster nu het equivalent van de v2 spanklassen, dus om de vorige code voor V3 te herschrijven, doe je eenvoudig het volgende: 

Inhoud hier
Inhoud hier

Hoewel versie 2 slechts één niveau van rastergrootte had, heeft versie 3 nu vier niveaus. Elk niveau is afgestemd op het verwachte hoofddoelapparaat dat u verwacht dat uw eindproduct zal gebruiken. 

Deze rastereenheden worden nu als volgt genoemd: 

  • Extra kleine apparaten: col-XS- *
  • Kleine apparaten: col-sm *
  • Middelgrote apparaten: col-MD-*
  • Grote apparaten: col-LG-*

Mediaqueries worden intern door BS3 gebruikt om te beslissen welke van de bovengenoemde netwerkklassen moet worden gebruikt en de verschillende groottes worden als volgt gedefinieerd: 

  • Extra klein: weergavebreedte kleiner dan 768 pixels 
  • Klein: weergavegrootte groter dan of gelijk aan 768 pixels of kleiner dan 992 pixels 
  • Gemiddeld: weergavegrootte groter dan of gelijk aan 992 pixels of kleiner dan 1.200 pixels 
  • Groot: weergavebreedte groter dan of gelijk aan 1200 pixels 

U kunt voor BS3 meerdere versies van uw raster coderen om te beslissen welk type moet worden gebruikt bij het targeten van meerdere beeldschermen. Bijvoorbeeld als u het volgende deed: 

Inhoud hier
Inhoud hier
Inhoud hier
Inhoud hier
Inhoud hier
Inhoud hier
Inhoud hier
Inhoud hier

BS3 zal de containers naar behoefte verbergen en zichtbaar maken, afhankelijk van de breedte van het display van het apparaat en de werking van de mediaquery's. 

Net als bij eerdere versies van het rastersysteem, zijn er 12 kolommen horizontaal over alle verschillende grootten, dus ongeacht welke raster wordt weergegeven, krijgt u altijd nog steeds 12 rasters op elk apparaat. 

De kolombreedte zelf verandert echter wel, dus u moet mogelijk de inhoud in die rasters plannen om te profiteren van de verschillende grootten. De maten voor elk van hen zijn als volgt: 

  • col-XS- *= Auto sizing, geen vaste dimensies 
  • col-sm *= 60 pixels 
  • col-MD-*= 78 pixels 
  • col-LG-*= 95 pixels 

De gootmarge blijft in alle gevallen op 15 pixels aan elke kant van de rastercontainer, wat een totale lengte van 30 pixels oplevert. Deze grootte is consistent, ongeacht het rastergrootte niveau dat u gebruikt. 

Nesten en verschuivingen werken zoals voorheen, maar net als bij de rasters zelf, door een kleine hernoeming van de gebruikte klassen. 

Gebruik gewoon een offset om een ​​offset toe te passen col-md-offset- *, herinneren aan het vervangen van de mdmet xs, sm, of lgzoals nodig, afhankelijk van uw rastergrootte. 

Nesten gebeurt eenvoudig door containers te nestelen onder controle van de col-XX *klassen in elkaar, waar ze het formaat wijzigen en zich gedragen zoals in voorgaande BS-versies. 

De volgende voorbeelden laten de juiste manier zien om beide technieken te bereiken: 

Niveau 1: .col-md-9
Niveau 2: .col-md-6
Niveau 2: .col-md-6

In dit voorbeeld krijgt u een raster dat er als volgt uitziet: 

.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

Dit voorbeeld geeft u een indeling als volgt: 

BS3 brengt ook iets nieuws aan de tafel als het gaat om compenseren en nesten, en dat is iets dat kolomorden wordt genoemd. 

Als u wilt dat uw kolommen in een andere volgorde worden gepresenteerd dan hoe u ze in uw HTML-document definieert, dan kunt u de nieuwe gebruiken col-XX-pull-*en col-XX-push *klassen om uw gridlay-outs in de door u gewenste volgorde te pushen of te trekken. Bijvoorbeeld: 

8 kolommen met inhoud
4 kolommen met inhoud

Als u de documenten in uw document als verwacht rendert, krijgt u het volgende: 

Als u echter de bovenstaande code wijzigt om push- en pull-modifiers als volgt toe te voegen: 

8 kolommen met inhoud
4 kolommen met inhoud

Wanneer u uw document rendert, zou uw lay-out als volgt moeten veranderen: 

Eindelijk, als u de Minder CSS-bronversies van Bootstrap, u hebt volledige controle over de rastergroottes door de volgende variabelen te wijzigen: 

  • @ Roostervormige columns: regelt het aantal roosters horizontaal (standaard 12) 
  • @ Roostervormige goot breedte: de totale marge rond elk raster (standaard 30 pixels) 
  • @ Roostervormige float-breekpunt: de minimale grootte waaronder we "extra kleine" apparaten hebben (standaard 768 pixels) 

Dus nu we het nieuwe rastersysteem onder controle hebben, is er nog iets dat u moet weten? 

Hoe slimmer je misschien denkt, "Maar dat is gek - met al die verschillende sets van

elementen en verschuivingen met col-xx-xxklassen, allemaal voor weergave van verschillende formaten, ik kan net zo goed vier verschillende sites maken, met vier verschillende resoluties in het achterhoofd! "Om eerlijk te zijn, zou ik het je niet kwalijk nemen, behalve één ding: elk van deze nieuwe lay-outafmetingen zijn ontworpen om tegelijkertijd aan dezelfde markup te werken en dezelfde ruimte in te nemen. 

Laten we de code in het vorige codevoorbeeld 4 nemen en het herschrijven om dit op de aanbevolen manier te doen: 

Inhoud hier
Inhoud hier

Ok, dus je zou kunnen eindigen met de klassenlijst van de hel op jouw elementen, maar een set markeringen zal zich aanpassen aan alle weergaveformaten, en de grootte van het formaat aanpassen waar nodig. 

Dit werkt ook met de verschillende klassen voor offset, volgorde en nesten.

Andere migraties  

Naast de onderwerpen die we al hebben besproken, moeten de volgende klassenamen ook worden gewijzigd als u migreert van een V2-indeling naar een V3-indeling (Opmerking: de volgende tabel is rechtstreeks overgenomen uit de Bootstrap 3-documenten en was correct op het moment van schrijven. Naarmate Bootstrap ouder wordt, kan dit echter niet zo blijven). 

Bootstrap versie 2 klassenaam Bootstrap versie 3 klassenaam
.Besturing group.warning .Besturing group.error .Besturing group.success .-vorm group.has- *
.checkbox.inline .radio.inline .checkbox-inline .radio-inline
.input-prepend .input-append .input-groep
.toevoeging .input-groep-addon
.img-polaroid .img-thumbnail
ul.unstyled .list-ongestijlde
ul.inline .list-inline
.gedempt .-Text gedempt
.label .label .label-standaard
.label-belang .label-gevaar
.text-error .text-gevaar
.tabel. fout .tabel. gevaar
.bar .voortgangsbalk
.bar-*
.voortgangsbalk-*
.accordeon .panel-groep
.accordeon-groep .paneel. panel-standaard
.accordeon-titel .panel-titel
.accordeon-body .paneelvormig collapse
.accordeon-binnen .paneelvormig body

Zoals eerder vermeld, zijn de meeste veranderingen aangebracht om overeenstemming te brengen met het naamgevingsschema dat door de verschillende klassen wordt gebruikt. Maar veel van hen zijn ook hernoemd omdat hun algemene doel is veranderd. 

We zullen in meer detail ingaan op komende tutorials in deze serie, maar voor nu, als je een conversie uitvoert, zal tabel 2 je alles vertellen wat je nodig hebt om een ​​v2-lay-out naar v3 te retargeten. 

U kunt overwegen een aangepaste taak te gebruiken in zoiets als een Grunt.js-taak, zodat wanneer u uw buildsysteem uitvoert, deze wijzigingen automatisch worden uitgevoerd. Op deze manier kunnen je ontwikkelaars productief blijven met v2 en geleidelijk de overstap maken naar v3. 

Dus wat er precies is toegevoegd aan Bootstrap is nieuw en wat is precies verwijderd? 

We beginnen met wat is verwijderd en we bespreken wat er in meer detail is toegevoegd in de zelfstudie over "CSS-functies gewijzigd". Het is belangrijker dat je weet wat er in deze tutorial is verwijderd, omdat dit de tutorial is die je ' zal waarschijnlijk verwijzen naar bij het migreren van uw lay-outs 

Eerst beginnen we met wat er is verwijderd op formulieren, en helaas is dat nogal wat. We hebben niet langer een specifiek type voor een zoekformulier vorm-search, en de gearceerde balk die meestal te vinden is aan de voet van een formulier form-actiesis ook verouderd in v3. 

Ook weg is de klasse die doorgaans wordt gebruikt om validatiefouten weer te geven, controle-group-info, en zijn tegenhanger, help-inline. Geen van deze vier klassen heeft een aanbevolen vervanging in de v3-codebasis, wat betekent dat om equivalenten ervan te construeren, u andere elementen en klassen moet gebruiken waar van toepassing. 

Doorgaan met vormen, de belangrijkste controlsDe klasse die wordt gebruikt om complete besturingssets in te pakken, is verdwenen controles rijen. In plaats daarvan wordt u geadviseerd om te gebruiken rijof de nieuwe vorm-groep klasse. Formulieren hebben ook de meeste klassen van de sortering verloren; de klassen met een vaste grootte, zoals input-mini, input-small, input-medium, input-large, input-xlarge, en input-XXLargezijn nu allemaal verdwenen, samen met de blokniveau controleklasse input-blokniveau. In plaats daarvan wordt u nu geadviseerd om uw formulierelementgroottes te gebruiken met vorm-controlin combinatie met de nieuwe maten en lay-outs die beschikbaar zijn in het rastersysteem. 

Vanuit het oogpunt van individuele controle, de omgekeerdeklassen zijn verwijderd van knoppen en andere soortgelijke besturingselementen, en we zijn ook de dropdown-submenuklasse in het voordeel van het gebruik van gesplitste vervolgkeuzeknoppen om dezelfde functionaliteit te creëren. 

Voor tabbladen, de tabs links, tabs-rechts, en tabs-belowklassen bestaan ​​niet meer, wat betekent dat we nu alleen de mogelijkheid hebben om tabs bovenaan de inhoud te plaatsen, links uitgelijnd. 

Logeren met tabbladen, de klasse om met inhoud te werken in een op pillen gebaseerde tabbladinstelling is ook verwijderd, wat betekent dat pill-paneen pill-inhoudzou nu de algemene moeten gebruiken tab-inhoud en tab-paneklassen. 

Eindelijk, de verschillende navbarklassen zijn niet zonder slachtoffers: navbar-binnen, navigatiebalk verticaalnav-lijst, en nav-headermaken geen deel meer uit van het raamwerk. 

In de meeste gevallen zijn er geen directe equivalenten in v3 voor deze klassen, hoewel er enkele overeenkomsten in andere klassen zijn die nuttig kunnen zijn. Bijvoorbeeld, nav-lijsten nav-headerkan opnieuw worden gemaakt met behulp van Lijstgroepen. 

In de migratiegids op de Bootstrap 3-website staat een snel overzicht van al deze zaken.

Deze tutorial staat voor een hoofdstuk van Bootstrap 3 Shortlyly, een gratis eBoek van het team van Syncfusion.