Responsive design voor MediaWiki
Door het maken van een Responsive Design wordt de layout van de website flexibel aangepast aan de grootte en resolutie van het scherm van de bezoeker van de website.
Inhoud
Technieken voor het maken van een responsive design
Toepassing van Grids
Een website bestaat in veel gevallen uit een aantal verschillende elementen:
- Navigatie of menu's
- Kop of header
- Main body
- Zijpanelen of sidebars (links of rechts)
- Footer
Waar het "vroeger" de gewoonte was deze onderdelen een vaste plaats t.o.v. van elkaar te geven (meestal in tabel-vorm), komen deze onderdelen nu in een "grid" (rooster) te staan.
De plaats van de onderdelen ten opzichte van elkaar wordt afhankelijk gemaakt van de grootte van het scherm.
Een grid is meestal onderdeel van de MediaWiki-skin. Zo gebruikt Foreground het grid van Foundation en Tweeki de bootstrap-grid.
De grootte van de onderdelen en de onderlinge positie wordt (bijv. met CSS) gedefinieerd, afhankelijke van de grootte van het scherm.
Breakpoints
Browsers hebben op verschillende apparaten een in grootte uiteenlopende viewport (het zichtbare deel van de website). Wanneer de viewport kleiner wordt, zoals op smartphones, dan kan de layout niet meer hetzelfde zijn als bij een grote viewport van een browser op een desktop.
Veel ontwerpers gebruiken specifieke layouts voor tenminste:
- Smartphones - small
- Tablets - medium
- Desktops - large
Het punt waarop de layout overschakelt tussen small, medium en large heet een breakpoint.
De browser "weet" hoe groot het scherm is d.m.v. het gebruik van "media-queries".
Voorbeeld toepassing responsive design met Tweeki-skin
De basis layout van de Tweeki-skin (voor het grote desktop-scherm - niet responsive weergegeven!):
navbar | ||
sidebar- left |
subnav | sidebar- right |
main content (including firstHeading) | ||
footer |
Grid instellingen
Deze inhoud is overgenomen van Tweeki handleiding.
Tweeki gebruikt een grid bestaande uit 12 kolommen, zoals bekend van Bootstrap. Als 'default' is een indeling van 10 kolommen voor de hoofdinhoud (main-content) en 2 kolommen voor een rechter zijpaneel (right sidebar) ingesteld.
Dit bij een vaste of "fluid" breedte, zoals ingesteld in MediaWiki:Tweeki-container-class (container
of container-fluid
).
De basisinstelling kan worden aangepast in de LocalSettings.php
.
Hieronder voorbeelden van instellingen.
Geen zijpanelen - no sidebars
$wgTweekiSkinGridNone = array( "mainoffset" => 1, "mainwidth" => 10 );
- Inspringen (offset) en breedte (width) voor de hoofdinhoud, wanneer er geen zijpanelen (sidebars) worden weergegeven.
Zijpaneel links - left sidebar
$wgTweekiSkinGridLeft = array( "leftoffset" => 0, "leftwidth" => 3, "mainoffset" => 0, "mainwidth" => 9 );
- Inspringen en breedte voor het linker zijpaneel en de hoofdinhoud.
Zijpaneel rechts - right sidebar
$wgTweekiSkinGridRight = array( "mainoffset" => 0, "mainwidth" => 9, "rightoffset" => 0, "rightwidth" => 3 );
- Inspringen (offsets) en breedte voor de hoofdinhoud en het rechter zijpaneel.
Zijpanelen aan beide zijden - sidebars on both sides
$wgTweekiSkinGridBoth = array( "leftoffset" => 0, "leftwidth" => 2, "mainoffset" => 0, "mainwidth" => 8, "rightoffset" => 0, "rightwidth" => 2 );
- Inspringen en breedte voor beide panelen en hoofdinhoud