Susy är en kraftfull uppsättning Sass mixins för att bygga gridbaserade layouter.
Vad är så bra med Susy? Vi visar dig grunderna i att arbeta med Susy i denna handledning, men här är en lista över proffs att tänka på:
Dessa tre enkla proffs är mer än tillräckligt för att ge Susy en titt. Låt oss börja!
Först måste du vara bekant nog med Sass att skriva och sammanställa den. Vid tidpunkten för denna skrivning implementerar Susy några Sass-funktioner som för närvarande inte stöds av LibSass (den C-baserade Sass-kompilatorn), så du måste använda Ruby-versionen av Sass. Börja med att installera Sass och lära dig hur du använder Kolla på
kommando, vilket är viktigt för att arbeta med Sass i allmänhet, liksom Susy.
Därefter måste du få Susy installerat på din dator. Eftersom Susys enda beroende är Sass själv kan du ladda ner projektets zip-fil från GitHub och kopiera innehållet i Sass-mappen till ditt projekt.
Därefter måste du importera Susy till din Sass-fil.
@import "susy";
Det förutsätter att du är i en katalog med innehållet i Sass-mappen.
Susy är i grunden en uppsättning mixins, som är som funktioner i Sass. Dessa mixins kallas inuti din Sass-kod, och när Sass-kompilatorn körs, kommer den att se på mixindefinitionerna i Susy-filerna och bestämma rätt utdata.
Den viktigaste mixin i Susy är spänna
mixin, som ser ut så här:
.innehåll @include span (20%);
De spänna
mixin är också beroende av behållare
mixin, som sätter upp vad Susy kallar en "layout context".
.behållare @ include container (1180px);
Susy tillåter dig också att skapa spans baserat på ett förinställt antal kolumner i en nätverkssats:
.kvart @include span (4 av 12);
Susys kraft går långt utöver det genomsnittliga gallret, vilket möjliggör mindre än vanliga rutkonfigurationer. Låt oss börja med ett enkelt exempel: en 9-kolonnlayout.
.nionde @include span (1 av 9);
Susy kan du konfigurera konfigurationen via $ susy
variabel. Genom att skapa en Sass-karta kan du bestämma ett antal preferenser om hur Susy arbetar för att lägga ut dina spänner. Susy genomför a layout
mixin som matar ut en konfigurationskarta. Här är standardinställningarna, som tas direkt från Susys dokumentation.
$ susy: (flöde: ltr, matte: vätska, utgång: flyt, gutterposition: efter, behållare: auto, behållarposition: centrum, kolumner: 4, rännor: .25, kolonnbredd: falskt, globalt -formatering: innehållsruta, sista flöde: till, felsökning: (bild: gömma, färg: rgba (# 66f, .25), utgång: bakgrund, växla: högra höger), användningsanpassad: : true, background-options: false, box-size: true, clearfix: false, rem: true,));
Du kan åsidosätta någon specifik inställning genom att lägga till den själv $ susy
Karta:
$ susy: (kolumner: 16, sista flöde: från)
Vanligt ändrade alternativ är kolumnräkningen, rännans bredd och produktion
alternativ. Var och en av dessa konfigurationsalternativ gör något annorlunda.
För denna handledning skull går vi inte igenom alla konfigurationsalternativ (Susys dokumentation gör ett bra jobb för att förklara dem). Låt oss istället gå igenom några praktiska exempel på hur du kan använda Susy.
Här kan vi se en grundläggande användning av spänn- och behållarmixinerna:
Notera: För att uppskatta kolumnerna i full bredd, ta en titt på helskärmsversionen.
Det finns några saker att märka med detta exempel. Vi har skapat ett konstruerat exempel på en instrumentpanel. Vi har också inkluderat en liten bit av JavaScript som hämtar falska användarbilder från uifaces.com API.
De Susy-specifika bitarna är kolumnerna. I det här exemplet har vi skapat en lyhörd layout med användning av @include span ()
syntax. Vi använder också SCSSs nestningsfunktioner på några få platser. Observera att Susy passar bra med din vanliga synfält för mediasökning. Vi har skapat en behållare ur .statistik
avsnitt med @ inkludera behållare
.
Det bör också noteras att det finns nestade kolumner i detta speciella exempel; de .avatar
element är nestade inuti en annan Susy kolumn, och detta fungerar helt bra eftersom Susy använder standardviddsbredd som standard.
Därefter kan vi se en användning av Susys stenografi för layout med ett galler som har större kolumner i mitten än på utsidan.
I det här exemplet använder vi några olika alternativ som borde se nytt ut för dig. Först skapar vi vår markering med hjälp av Haml. Haml är en whitespace-känslig markup ersättning för HTML byggd ovanpå Ruby. Tänk på att det är lite som en förprocessor för HTML.
Låt oss titta på vad vårt exempel skapar.
.tegel listan
Detta skapar en Den här indragna linjen upprepar vad som helst som är inhämtat inuti samma injektion 30 gånger. Det betyder att allting som utmatas kommer att vara inuti den div som vi skapade ovan med Vi ser detta inuti vårt En annan viktig del av dessa linjer är Susy-nätet är unikt i detta exempel; vi ställer in en nätvariabel med linjen: Denna variabel kommer att skickas till Susy i vår Vi utnyttjar sedan det här nätet genom hela exemplet, placera vårt Här är samma exempel, med en annan asymmetrisk layout. Som du kan se är icke-konventionella rutor rakt framåt för att uppnå, och Susy gör kraftfullt nätstyrning en angenäm uppgift. Susy ger ett mer flexibelt och mindre uppfattat sätt att skapa egna gridlayouter utan att tvinga dig att anta en förutbestämd uppsättning CSS. På grund av den flexibiliteten kan Susy snabbt läras och tas in i ett projekt utan att helt behöva använda det i varje CSS-deklaration du skapar. Oavsett om du bestämmer Susy, är det rätt för dig eller inte, som en utvecklare i framsidan bör du åtminstone vara medveten om alla förbehandlingsverktyg som är tillgängliga för dig. De blir en nyckelverktygssats för moderna utvecklare.tegel listan
.- 30 gånger gör | i |
.tegel listan
. De | I |
del passerar i strömmen index, vilket är slingans räkning, börjar vid 0. Så, till exempel, på vår femte gång genom slingan, jag
skulle vara lika med 4
. .col% img src: "http://hhhhold.com/jpeg/700?v=#i"
30 gånger
slinga. De .col
skapar en div
med en klass
av col
. De % img ...
skapar en element, och attributen i de lockiga axlarna överförs till den bilden. Vi använder hhhhold.com för våra platshållare bilder. Syntaxen här är Ruby hash-syntaxen, som på många sätt liknar JSON.
#
, som låter dig skriva ut jag
indexvariabel (detta kallas interpolation, om du vill lära dig mer Hugo Giraudel förklarar allt du behöver veta). Vi använder denna variabel i webbadressen som en parameter så att bilderna vi laddar inte är alla samma.$ rutnät: (1 2 5 5 2 1);
spänna
mixin ringer och läser skapa ett rutnät med sex kolumner; den första kolumnen ska ha en relativ bredd på 1, den andra kolumnen med en relativ bredd av 2, den tredje kolonnen med en relativ bredd av 5 mm..col
divs vid första, tredje och femte kolumnens startpositioner och spänner över 2 kolumner med hjälp av n: te-barn
CSS-regeln. Om vi skulle ändra samma raster för att ha varje kolumn med samma relativa kolumnbredd, så skulle det se ut så här.Slutsats