Yahoo-brukergrensesnittbiblioteket er et ganske omfattende sett med JavaScript-verktøy for utviklere. Ofte igjen ubemerket er noen andre nyttige komponenter i biblioteket som vil fremskynde kodingen din: noen CSS-biblioteker. I dag vil jeg gjerne gi deg en tur på YUI Grids CSS-biblioteket.
Hvorfor bør du til og med vurdere å bruke YUI Grids CSS biblioteket (heretter referert til "YUI grids")? Hva gjør det skiller seg ut? Jeg har ikke sett mye på andre nettbiblioteker, men jeg finner disse tingene overbevisende:
YUI-nettene bruker lett-å-huske ids og klasser, og ren markering; Når du lærer det, kan du komme tilbake til koden din om en måned og vite hvilke deler som er fra YUI og hva hver del gjør.
Dette reduserer belastningen to ganger: det er ikke nødvendig å være vert for filen på serveren din, samt raskere sideopplasting hvis klienten har filen cached.
Yahoo har bakket i sidebjeldbredder som samsvarer med Interactive Advertising Bureaus retningslinjer for annonsering.
Med flere maler og muligheten til å nest sideområder, hevder Yahoo å tilby over 1000 layoutkombinasjon ... alt på mindre enn 5kb.
Selvfølgelig er YUI-nettene ikke perfekte. Det er litt begrensende når det gjelder de pre-bakte sidebarbreddene; Men hvis de passer dine behov, sparer du mye tid, koding og hodepine når du legger ut nettstedet ditt.
Som vi begynner, her er noen ressurser som vil være til hjelp.
Før vi kommer inn i det nitty griddy, la oss se på byggeblokkene til YUI-gridene. Det er fem forskjellige strukturer som du vil jobbe med for å utvikle oppsettet ditt. Hver av disse strukturene er definert av enten et id eller en klasse (vanligvis en klasse). De er som følger:
Åpenbart er hele HTML-filen dokumentet, men i vårt tilfelle er det også div umiddelbart i kroppen - div som holder alt. Her definerer du bredden på nettstedet ditt. YUI-nett gir deg 4 breddealternativer: 750px, 950px, 100% eller 974px. Disse breddene er egentlig ikke hardkodede piksler; de er ems, så siden vil justere flytende når brukeren justerer skriftstørrelsen. Hvis disse ikke kutter det, har Yahoo gjort definere en tilpasset bredde en bris. Her er koden for å lage et dokument 800px bredt:
# tilpasset-doc margin: auto; / * Disse to verdiene er påkrevd, som * / text-align: left; / * de hjelper YUI grids senter siden * / bredde: 61.54em; / * 800px / 13 = em-verdi for de fleste nettlesere * / * bredde: 60.00em; / * 800px / 13.333 = em-verdi for IE * / min-bredde: 800px; / * valgfritt, men anbefalt * /
For å angi bredden, bruk bare id av doc, doc2, doc3 eller doc4, henholdsvis til de ovenfor angitte verdiene.
Det er sju maler å velge mellom. De første seks definerer en to kolonne layout; hver har en annen bredde eller orientering for sidefeltet, med hovedinnholds-kolonnen tar opp resten av dokumentets bredde. Malerne er 1) 160px til venstre, 2) 180px til venstre, 3) 300px til venstre, 4) 180px til høyre, 5) 240px til høyre og 6) 300px til høyre. For å få malen til din ønske, legg til en klasse av yui-t # til samme div som du definerte dokumentet ditt på (erstatt # med tallene ovenfor). Som nevnt ovenfor, er disse sidebjelkene standardbredder for webannonser, så reklame skal passe godt inn i dem.
Den syvende mal-yui-t7 er ikke så godt dokumentert (merkelig, det er ikke på cheat sheet jeg koblet til ovenfor, men det er på denne eldre versjonen). Den trekker sidebjelken, og gir deg en full bredde kolonne (som kan deles inn i kolonner senere).
Blokkene er den faktiske manifestasjonen av kolonnene du definerte i malen. De er bare to diver innenfor doc div, begge klassifisert med yui-b. Heldigvis behøver de ikke å være umiddelbare barn av den største diven; Yahoo gir dette eksempelet:
<-- Header Content --><-- Main Content --><-- Sidebar Content --><-- Footer Content -->
Du kan se fra eksemplet at du ikke trenger å sette blokkene direkte inne i root div. Dette gjør det mulig å ha en header og en footer i full bredde, som vanligvis er en fin ide. Du vil legge merke til at hovedinnholdsblokken er inne i en div med et id for yui-main; YUI-nett gjør dette for å gi deg muligheten til å ha enten sidebjelken eller hovedkolonnen din først i koden din, noe som kan være en fordel når du vurderer SEO eller tilgjengelighet.
Jeg har gruppert grids og enheter sammen fordi de er veldig ganske liknende; begge er divs. Et rutenett (definert med klasse yui-g) forteller i utgangspunktet 2 barn (vanligvis enheter) for å dele bredden jevnt. En enhet (klasse yui-u) bør alltid være barn av et rutenett og foreldre av innholdet ditt.
Så, hva er forskjellen mellom en blokk og et rutenett?
Også, når du har flere grids eller enheter i et rutenett, er det nødvendig å gi den første en klasse først. Dette skyldes at ikke alle nettlesere tilbyr pseudoklassen: første barn.
Men hva om du vil dele et rutenett ujevnt? Livet er ikke alltid rettferdig, er det? Heldigvis tilbyr YUI en rekke alternative valg til yui-g-klassen. Her er en liste over de andre:
Det er alle av dem; bare luk 2 eller 3 enheter i hvert av de ovennevnte gridene, og du vil ha ulik kolonner.
Vel, nå som du kjenner tauene, la oss gå over et grunnleggende eksempel. La oss si at vi vil ha standard sideoppsett - du vet, hovedinnholdskolonne med et sidebar til høyre - med litt vri: Vi deler hovedkolonnen i to mindre, og deler en av disse videre i to.
Som nevnt tilbyr Yahoo hosting for dette rammeverket, og det er vanligvis en god ide å dra nytte av det. Også, Yahoo anbefaler HTML 4.01 strenge Doctype, så det er det jeg har satt inn. Her er det vi starter med:
En enkel YUI Grids CSS Eksempel