nl.hideout-lastation.com
Paradijs Voor Ontwerpers En Ontwikkelaars


Een eenvoudige en eenvoudige gids om Sass te begrijpen

Een tijdje geleden schreef Thoriq Firdaus een geweldig artikel over het starten met Sass, dat je liet zien hoe je deze uiterst nuttige CSS-preprocessor-taal installeerde en gebruikt (misschien wil je het eens proberen, je weet wel, om te beginnen).

In dit artikel dacht ik dat ik je een beetje meer inzicht zou geven in wat je met Sass kunt doen en hoe ontwikkelaars het elke dag gebruiken om betere en meer modulaire CSS-code te maken. Ga vooruit naar het gedeelte dat u wilt:

  • Instrumenten van de handel
  • Variabelen
  • nesting
  • Uitgebreide regelsets
  • mixins
  • Placeholder Selectors
  • Activiteiten
  • functies

Instrumenten van de handel

Thoriq heeft je laten zien hoe je Sass van de opdrachtregel kunt gebruiken met behulp van de opdracht sass --watch .

Als je de voorkeur geeft aan GUI-tools, kun je meegaan met mijn persoonlijke favoriete app, Codekit, een webontwikkelaarstool voor het compileren van Sass, aaneenschakelen, automatisch verzinnen en nog veel meer. Prepros is een andere zeer capabele toepassing die op alle systemen kan worden gebruikt. Beide zijn betaalde applicaties, maar zijn het zeker waard als je ze op de lange termijn zult gebruiken.

Als je Sass gewoon wilt uitproberen zonder iets te betalen, kun je de terminal gebruiken, of Koala (hier is onze recensie), een gratis platformonafhankelijke rijkverspreide app die het tegen premium-tegenhangers kan opnemen.

Variabelen

Een van de eerste dingen die je moet doen om je hoofd rond te wikkelen is variabelen. Als je van een PHP of een andere soortgelijke coderingstaalachtergrond komt, is dit een tweede natuur voor jou. Variabelen zijn voor het opslaan van stukjes en beetjes van herbruikbare informatie, zoals een kleurwaarde bijvoorbeeld:

 $ primary_color: # 666666; .knop {color: $ primary_color; } .belangrijk {color: $ primary_color; } 

Dit lijkt hier misschien niet zo handig, maar stel je voor dat je 3.000 regels code hebt. Als uw kleurenschema verandert, moet u elke kleurwaarde in CSS vervangen. Met Sass kunt u alleen de waarde van de $primary_color wijzigen en daarmee klaar zijn.

Variabelen worden gebruikt voor het opslaan van lettertypenamen, -groottes, -kleuren en tal van andere informatie . Voor grotere projecten kunnen we het waard zijn om al uw variabelen in een apart bestand te extraheren (we zullen kijken hoe dit snel wordt gedaan). U kunt dit doen door uw hele project opnieuw in te kleuren en lettertypen en andere belangrijke aspecten te wijzigen zonder ooit de eigenlijke CSS-regels aan te raken . Het enige dat u hoeft te doen, is enkele variabelen aanpassen.

nesting

Een ander basiskenmerk dat Sass u geeft, is de mogelijkheid om regels te nesten . Laten we aannemen dat je een navigatiemenu aan het bouwen bent. U hebt een nav element met een ongeordende lijst, lijstitems en koppelingen. In CSS zou je zoiets als dit kunnen doen:

 #header nav {/ * Regels voor het nav-gebied * /} #header nav ul {/ * Regels voor het menu * /} #header nav li {/ * Regels voor lijstitems * /} #header nav a {/ * Rules voor links * /} 

In de selectors herhalen we onszelf vaak. Als elementen dezelfde wortels hebben, kunnen we nesting gebruiken om onze regels op een veel schonere manier te schrijven .

Hier is hoe de bovenstaande code eruit zou kunnen zien in Sass:

 #header {nav {/ * Regels voor het nav-gebied * /} ul {/ * Regels voor het menu * /} li {/ * Regels voor lijstitems * /} a {/ * Regels voor links * /}} 

Nesten is buitengewoon handig omdat het stylesheets (veel) leesbaarder maakt . Door gebruik te maken van nesten met de juiste inspringing, kunt u zeer leesbare codestructuren realiseren, zelfs als u over een behoorlijke hoeveelheid code beschikt.

Een nadeel van nesten is dat het kan leiden tot onnodige specificiteit . In het bovenstaande voorbeeld heb ik #header nav a naar koppelingen met #header nav a . Je zou ook #header nav ul li a wat waarschijnlijk te veel zou zijn.

In Sass is het veel eenvoudiger om heel specifiek te zijn, omdat je alleen je regels hoeft te nesten. Het volgende is veel minder goed leesbaar en vrij specifiek.

 #header {nav {/ * Regels voor het nav-gebied * / ul {/ * Regels voor het menu * / li {/ * Regels voor lijstitems * / a {/ * Regels voor links * /}}}}} 

Uitgebreide regelsets

Uitbreiden is bekend als u met objectgeoriënteerde talen werkt. Het wordt het best begrepen door een voorbeeld, laten we 3 knoppen maken die kleine variaties van elkaar zijn.

 .button {display: inline-block; kleur: # 000; achtergrond: # 333; border-radius: 4px; opvulling: 8px 11px; } .button-primary {@extend .button; achtergrond: # 0091C2} .button-small {@extend .button; font-size: 0.9em; opvulling: 3px 8px; } 

De .button-primary en .button-small classes breiden alle de .button klasse uit, wat betekent dat ze alle eigenschappen aannemen en dan hun eigen eigenschappen definiëren.

Dit is enorm nuttig in veel situaties waarin variaties van een element kunnen worden gebruikt. Berichten (alert / succes / fout), knoppen (kleuren, grootten), menutypes enzovoort kunnen allemaal de uitbreidingsfunctionaliteit gebruiken voor geweldige CSS-efficiëntie.

Een waarschuwing is dat ze niet in mediaquery's werken zoals je zou verwachten. Dit is een beetje geavanceerder, maar u kunt alles over dit gedrag lezen in Understanding Placeholder Selectors - placeholder selectors zijn speciale uitbreidingen die we binnenkort zullen bespreken.

mixins

Mixins zijn een andere favoriete functie van preprocessor-gebruikers. Mixins zijn herbruikbare regelsets - perfect voor leverancierspecifieke regels of voor het verkorten van lange CSS-regels.

Hoe zit het met het creëren van een overgangsregel voor hover-elementen:

 @mixing hover-effect {-webkit-transition: background-color 200ms; -moz-overgang: achtergrondkleur 200ms; -o-overgang: achtergrondkleur 200ms; overgang: achtergrondkleur 200ms; } a {@inclusief hover-effect; } .button {@inclusief hover-effect; } 

Met mixins kunt u ook variabelen gebruiken om de waarden binnen de mixin te definiëren . We zouden het bovenstaande voorbeeld kunnen herschrijven om ons controle te geven over het exacte tijdstip van de overgang . We willen misschien dat knoppen een klein beetje langzamer gaan, bijvoorbeeld.

 @mixin hover-effect ($ speed) {-webkit-transition: background-color $ speed; -moz-overgang: achtergrondkleur $ snelheid; -o-overgang: achtergrondkleur $ snelheid; overgang: achtergrondkleur $ snelheid; } een {@ include hover-effect (200ms); } .button {@inclusief hover-effect (300ms); } 

Placeholder Selectors

Placeholder-selectors werden geïntroduceerd met Sass 3.2 en een probleem opgelost dat een opgeblazen gevoel kon veroorzaken in uw gegenereerde CSS-code. Bekijk deze code die foutmeldingen creëert:

 .message {font-size: 1.1em; padding: 11px; border-width: 1px; border-style: solid; }. bericht-gevaar {@extend. bericht; achtergrond: # C20030; color: # fff; randkleur: # A8002A; } .bericht-succes {@extend. bericht; achtergrond: # 7EA800; color: # fff; randkleur: # 6B8F00; } 

Het is zeer waarschijnlijk dat de berichtklasse nooit zal worden gebruikt in onze HTML: deze is gemaakt om te worden uitgebreid, niet te worden gebruikt zoals deze is . Dit veroorzaakt een beetje opgeblazen gevoel in je gegenereerde CSS. Om uw code efficiënter te maken, kunt u de selectiereeks selector gebruiken die wordt aangeduid met een percentageteken:

 % bericht {font-size: 1.1em; padding: 11px; border-width: 1px; border-style: solid; }. bericht-gevaar {@uitbreidings% knop; achtergrond: # C20030; color: # fff; randkleur: # A8002A; }. Bericht-succes {@extend% -knop; achtergrond: # 7EA800; color: # fff; randkleur: # 6D9700; } 

In dit stadium vraag je je misschien af ​​wat het verschil is tussen uitbreidingen en mixins. Als u tijdelijke aanduidingen gebruikt, gedragen ze zich als een parameterloze mixin. Dit klopt, maar de uitvoer in CSS verschilt. Het verschil is dat mixins regels dupliceren, terwijl tijdelijke aanduidingen ervoor zorgen dat dezelfde regels selectors delen, wat uiteindelijk leidt tot minder CSS.

Activiteiten

Het is moeilijk om de woordspeling hier te weerstaan, maar ik zal voorlopig geen medische grapjes maken. Operators stellen u in staat om wat wiskunde in uw CSS-code uit te voeren en kunnen behoorlijk nuttig zijn. Het voorbeeld in de Sass-handleiding is perfect om dit te laten zien:

 .container {width: 100%; } artikel {float: left; breedte: 600px / 960px * 100%; } opzij {float: right; breedte: 300px / 960px * 100%; } 

Het bovenstaande voorbeeld creëert een 960px gebaseerd rastersysteem met minimale problemen. Het zal compileren naar de volgende CSS:

 .container {width: 100%; } artikel {float: left; breedte: 62, 5%; } opzij {float: right; breedte: 31, 25%; } 

Een handig gebruik dat ik vind voor bewerkingen is om kleuren daadwerkelijk te mengen. Als je het succesbericht Sass hierboven bekijkt, is het niet duidelijk dat de kleur van de achtergrond en de rand een soort relatie hebben. Door een grijstint af te trekken, kunnen we de kleur donkerder maken, waardoor de relatie zichtbaar wordt:

 $ primair: # 7EA800; .bericht-succes {@extend% -knop; achtergrond: $ primair; color: # fff; border-color: $ primary - # 111; } 

Hoe lichter de afgetrokken kleur, hoe donkerder de resulterende tint zal zijn. Hoe lichter de toegevoegde kleur, hoe lichter de resulterende tint.

functies

Er zijn een groot aantal functies om te gebruiken: nummerfuncties, tekenreeksfuncties, lijstfuncties, kleurfuncties en meer. Bekijk de lange lijst in de documentatie voor ontwikkelaars. Ik zal hier een paar bekijken om je te laten zien hoe ze werken.

De functie lighten en darken kan worden gebruikt om de lichtheid van een kleur te wijzigen. Dit is beter dan het aftrekken van kleuren, het maakt alles nog modulair en duidelijker. Bekijk ons ​​vorige voorbeeld met de functie voor verdonkeren.

 $ primair: # 7EA800; .bericht-succes {@extend% -knop; achtergrond: $ primair; color: # fff; randkleur: donkerder ($ primary, 5); } 

Het tweede argument van de functie is het percentage verduistering dat nodig is. Alle functies hebben parameters; Bekijk de documentatie om te zien wat ze zijn! Hier zijn enkele andere, voor zichzelf desaturate : desaturate, saturate, invert, grayscale .

De ceil functie retourneert, net als in PHP, een getal dat is afgerond op het volgende gehele getal. Dit kan worden gebruikt bij het berekenen van kolombreedtes of als u niet veel decimalen in de uiteindelijke CSS wilt gebruiken.

 .title {font-size: ceil ($ heading_formaat * 1.3314); } 

Overzicht

De functies in Sass geven ons een groot vermogen om betere CSS te schrijven met minder inspanning. Het juiste gebruik van mixins, uitbreidingen, functies en variabelen maakt onze stylesheets beter leesbaar, leesbaarder en gemakkelijker te schrijven.

Als je geïnteresseerd bent in een andere soortgelijke CSS-preprocessor, stel ik voor om MINDER te bekijken (of onze beginnershandleiding te raadplegen) - de onderliggende principal is vrijwel hetzelfde!

VLC-mediaspeler voor snelle ondersteuning van 360-gradenvideo's

VLC-mediaspeler voor snelle ondersteuning van 360-gradenvideo's

VLC-mediaspeler staat bekend om zijn flexibiliteit dankzij de mogelijkheid om vrijwel elk videoformaat onder de zon te spelen. Binnenkort zal de mediaspeler in staat zijn om nog een ander videoformaat te ondersteunen: 360-graden video's .Om ons een idee te geven van wat er naar VLC komt, heeft VideoLAN besloten om een technische preview van de functie genaamd VLC 360 ° uit te brengen .

(Technische en ontwerptips)

30 gereedschappen om uw afbeeldingen bij te snijden en het formaat van uw foto's te wijzigen zonder Photoshop

30 gereedschappen om uw afbeeldingen bij te snijden en het formaat van uw foto's te wijzigen zonder Photoshop

Soms wil je Photoshop niet alleen voor een taak starten, net zo eenvoudig als het aanpassen van de afbeelding. Overigens kunt u de gratis online beeldformaat-diensten gebruiken . Sommige van deze sites bieden alleen de functie voor formaataanpassing, terwijl andere zelfs zover gaan dat ze aangepast zijn voor bijsnijden en zelfs voor het bewerken van batchafbeeldingen

(Technische en ontwerptips)