Mange JavaScript-biblioteker er utviklet for å gi oss flere interaktive widgets på nettsteder. På samme måte har HTML5 også tolket en rekke populære interaktive komponenter, noe som gjør dem til innfødte webfunksjoner. I dette innlegget skal vi se på et slikt element som heter
(og ved å gjøre det
element) som gir oss en interaktiv widget som ligner på et trekkspill.
og
De
element kan brukes hvor som helst innenfor rammen av . For å gi et enkelt eksempel, kan vi legge til det på denne måten:
Kjæresten er dum i sitt hjem, og er en avgjørende forfatter. Voluptas, impedit.
Eksemplet ovenfor viser
element som inneholder et avsnitt, som fremhever dens likhet med andre HTML-seksjonselementer. Det definerer en semantisk seksjon som igjen kan inneholde barnelementer, for eksempel bilder sammen med element, form elementer som
og
, og selv nesting andre arrays av
.
Den eneste signifikante forskjellen ville være i hvordan nettlesere viser dette elementet på forsiden. Støttende nettlesere som Chrome, Safari og den nyeste versjonen av Opera vil vise den med en liten trekant og a Detalj linje på siden.
De
element fungerer som en trekkspill widget ved at innholdet i det vil i utgangspunktet bli skjult. Bytting av pilen, eller klikke hvor som helst som horisontalt justerer seg med pilen, vil avsløre det skjulte innholdet. Vi kan også markere den ved hjelp av Tab nøkkel og enten Rom eller Tast inn nøkkelen til å bytte den.
Merk: AccesibleCulture dekket tilgjengeligheten grundig i skjermlesere og detaljer / sammendrag.
Etter å ha åpnet detaljelementet, hvis du nå ser på kilden med dev-verktøy, finner du at nettleseren har lagt til åpen
attributt mens den er i denne tilstanden. Vi kan faktisk legge til åpen
tilskrive inn i
manuelt for å vise innholdet som standard som standard.
Kjæresten er dum i sitt hjem, og er en avgjørende forfatter. Voluptas, impedit.
De
elementet går sammen med et element som kalles
; disse to er ment å brukes sammen, men bruker
elementet er helt valgfritt.
Så hva skjer når du bruker det?
Hei Verden
Kjæresten er dum i sitt hjem, og er en avgjørende forfatter. Voluptas, impedit.
Gitt ovenstående eksempel, standard Detalj vil bli erstattet med Hei Verden.
Som nevnt,
elementet kan inneholde andre nestede
elementer, slik som:
Hei Verden
Kjæresten er dum i sitt hjem, og er en avgjørende forfatter. Voluptas, impedit.
Hei Hvordan har du det?
Kjæresten er dum i sitt hjem, og er en avgjørende forfatter. Voluptas, impedit.
Dette presenterer ett visuelt problem (som ikke ville være tilfelle med, si nestede lister) nettleserens standard styling. Som du kan se nedenfor, er det nestede elementet justert til venstre sammen med forelder som forvirrer det sanne hierarkiet:
Dette er likevel enkelt adressert ved å legge til noen enkle stiler. Så, la oss se hvordan vi stiler disse elementene.
De
og
elementene kan styles akkurat som alle andre blokkelementer; velg dem gjennom elementvelgeren, en klasse eller et id og stakk en haug med egenskaper for å stilte den.
detaljer polstring: 15px; bakgrunnsfarge: # f6f7f8; margin-bunn: 20px;
I tillegg kan du bruke attributtvelgeren til å angi stiler for åpen tilstand.
detaljer [åpen] / * stilen går her * /
De
elementet kan også styles Når du snakker om hvilke, hvis du svinger over et klikkbart element som en knapp eller et anker, blir markøren normalt en pointer. Men det er ikke tilfellet for
element som er også klikkbare. Markøren vil i stedet bli til tekst
markør, som føles litt unaturlig, derfor kan du revidere standardstilen, definere markøren som pekeren
som så.
oppsummering markør: pointer;
Og nå for spørsmålet du har vært døende for å spørre: kan du stile den lille triangelen? Det er ingen standard ennå, men Webkit har et pseudo-element til dette formålet, :: - WebKit-detaljer-markør
. Gjennom dette kan vi tilpasse standard pilestiler som farge, bakgrunnsfarge, samt pilens størrelse.
oppsummering :: - webkit-detaljer-markør farge: #fff; bakgrunnsfarge: # 000;
Dessverre erstatter du pilen direkte gjennom :: - WebKit-detaljer-markør
er ikke mulig - i det minste, på tidspunktet for skriving. Det eneste levedyktige kurset er å erstatte det ved å bruke ::før
eller ::etter
.
oppsummering :: - webkit-detaljer-markør display: none; sammendrag: før innhold: "\ 2714"; / * det nye ikonet * / farge: # 696f7c; margin-høyre: 5px;
Nettleserstøtte for disse to elementene har vært bedre forbedret de siste to årene. Tilbake i 2011 og 2012 var Chrome den eneste nettleseren som kunne gjenopprette
og
- selv om implementeringen led av noen tilgjengelighetsproblemer. Safari og Opera har bare nylig blitt med i klubben.
Så, så langt som å støtte Firefox og Internet Explorer, er det et par muligheter for polyfill for å etterligne funksjonaliteten, for eksempel en utviklet av Mathias Bynens, jQuery Details. Selv om denne polyfillen tilsynelatende er avhengig av jQuery, er filstørrelsen mye mindre enn jQuery UI-bibliotekets motpart.
Når du er implementert, stil det akkurat som alltid.
sammendrag: før innhold: "\ 25B8"; / * unicode karakter av den lille trekanten * / farge: # 000; margin-høyre: 5px;
Ytterligere informasjon om nettleserstøtte finnes på caniuse.com.
Du vil sannsynligvis allerede ha sett disse elementene i naturen. Mens du handler på nettet, kan du for eksempel finne noen nettsteder som pakker produktets lange beskrivelser i et trekkspill. Ellers kan de bruke det i sidelinjen for å filtrere resultater, for eksempel Payless, for eksempel.
De
og
elementet er også perfekt egnet for å organisere FAQ-elementer og funksjonslisteelementer som vanligvis finnes i et pristabelloppsett. Jeg har opprettet en demo som du kan se her som du er fri til å misbruke.
Som Aaron Lumsden sa i dette innlegget
"nettsteder blir stadig mer data-drevne og app-like"
så dette nye elementet er veldig verdsatt. I dag, kanskje med advent av webkomponenter, vil det være mindre avhengig av JavaScript-biblioteker å bygge en nettside eller en webapps når man legger til en enkel widget som en Accordion.
Så har du noen gang brukt
og
på nettstedet ditt?