details ja summary: avattava käyttöliittymäkomponentti
Rakenna natiivisti avattavia ja suljettavia komponentteja ilman JavaScriptiä
details ja summary: avattava käyttöliittymäkomponentti on ilmainen HTML Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu HTML Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. HTML Academy-kurssilla on yhteensä 4 oppituntia.
Mitä details ja summary ovat
<details>- ja <summary>-elementit luovat natiivin paljastuswidgetin — avautuvan ja sulkeutuvan komponentin — ilman JavaScriptiä:
<details>
<summary>What is HTML?</summary>
<p>HTML (HyperText Markup Language) is the standard markup language
used to create web pages.</p>
</details>Miten se toimii
Toimintaperiaate:
- Oletuksena näkyvissä on vain
<summary> - summary-elementin napsauttaminen vaihtaa muun sisällön näkyvyyttä
- summary-elementin yhteydessä näkyy oletuksena paljastuskolmio
- JavaScriptiä ei tarvita
open-määrite
open-määrite avaa details-elementin valmiiksi:
<details open>
<summary>Installation instructions</summary>
<ol>
<li>Download the installer</li>
<li>Run the installer</li>
<li>Restart your computer</li>
</ol>
</details>
<!-- open is a boolean attribute: presence = expanded -->
<!-- Remove it to start collapsed -->UKK:n rakentaminen
UKK-osiot ovat erinomainen käyttökohde:
<h2>Frequently Asked Questions</h2>
<details>
<summary>Is HTML5 a programming language?</summary>
<p>No. HTML5 is a markup language that defines the structure and meaning
of web content. Programming languages like JavaScript add logic and behavior.</p>
</details>
<details>
<summary>Do I need to close void elements?</summary>
<p>In HTML5, void elements like <img> and <br> do not require
a closing slash. Both <br> and <br /> are valid.</p>
</details>details- ja summary-elementtien tyylittely
Mukauttakaa ulkoasua:
details {
border: 1px solid #e2e8f0;
border-radius: 0.5rem;
padding: 0.75rem 1rem;
margin-bottom: 0.5rem;
}
summary {
font-weight: 600;
cursor: pointer;
list-style: none; /* remove default triangle */
}
summary::before {
content: '▶ '; /* custom arrow */
}
details[open] > summary::before {
content: '▼ '; /* rotate when open */
}Oletuskolmion poistaminen
Paljastuskolmio lisätään list-style-ominaisuudella:
/* Remove the default arrow: */
summary {
list-style: none;
}
/* Firefox: */
summary::-webkit-details-marker {
display: none;
}
/* Then add a custom indicator: */
summary::after {
content: '+';
float: right;
}
details[open] summary::after {
content: '−';
}toggle-tapahtuma
Kuunnelkaa avaamista ja sulkemista toggle-tapahtuman avulla:
const details = document.querySelector('details');
details.addEventListener('toggle', () => {
if (details.open) {
console.log('Details opened');
// Track analytics, load content, etc.
} else {
console.log('Details closed');
}
});Haitari details-elementeillä
Rakentakaa perushaitari, jossa on kerrallaan auki vain yksi paneeli:
/* Pure CSS accordion using details: */
/* Each item is a details element */
/* For exclusive open, use JavaScript: */
const allDetails = document.querySelectorAll('details');
allDetails.forEach(d => {
d.addEventListener('toggle', () => {
if (d.open) {
allDetails.forEach(other => {
if (other !== d) other.removeAttribute('open');
});
}
});
});details- ja summary-elementtien saavutettavuus
Sisäänrakennetut saavutettavuusominaisuudet:
- summary saa näppäimistökohdistuksen, ja sen voi aktivoida Enter- tai välilyöntinäppäimellä
- Ruudunlukijat ilmoittavat summary-tekstin ja avautumistilan
- Piilotettu sisältö on DOM:ssa, mutta se ilmoitetaan piilotetuksi, kunnes se avataan
name-määrite yksipaneeliselle haitarille
HTML 2025 lisää name-määritteen details-elementille natiivista yksipaneelista haitaria varten:
<details name="faq">
<summary>Question 1</summary>
<p>Answer 1...</p>
</details>
<details name="faq">
<summary>Question 2</summary>
<p>Answer 2...</p>
</details>
<!-- details with the same name act as a group -->
<!-- Opening one closes the others automatically -->
<!-- Supported in Chrome 120+ and Firefox 130+ -->Sisällön lataaminen tarvittaessa togglen avulla
Ladatkaa sisältö vasta, kun details-elementti avataan:
<details id="advanced">
<summary>Load advanced settings...</summary>
<div id="advanced-content">Loading...</div>
</details>
<script>
const d = document.getElementById('advanced');
d.addEventListener('toggle', async () => {
if (d.open) {
const res = await fetch('/api/settings');
const html = await res.text();
document.getElementById('advanced-content').innerHTML = html;
d.removeEventListener('toggle', arguments.callee);
}
}, { once: true });
</script>Pikatarkistus
Mikä elementti tarjoaa details-paljastuswidgetissä aina näkyvän käynnistystekstin?
Kertaus: yksityiskohdat ja yhteenveto
Disclosure-widgetin perusteet:
<details>+<summary>— natiivi laajennus ja supistus ilman JavaScriptiäopen-attribuutti — laajenna valmiiksi- toggle-tapahtuma — reagoi avautumiseen ja sulkeutumiseen
- Muotoile CSS:llä; poista oletuskolmio määrittämällä list-style: none
name-attribuutti — toisensa poissulkeva harmonikka (Chrome 120+)
Opi HTML tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 40
- Oppitunnit
- 159
Usein kysytyt kysymykset
Onko oppitunti ”details ja summary: avattava käyttöliittymäkomponentti” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa HTML Academy-oppimispolun 3 oppituntia, myös oppitunnin “details ja summary: avattava käyttöliittymäkomponentti”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. HTML Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”details ja summary: avattava käyttöliittymäkomponentti”?
Rakenna natiivisti avattavia ja suljettavia komponentteja ilman JavaScriptiä Harjoittelet HTML Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni HTML Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin HTML Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.
Kuinka kauan ”details ja summary: avattava käyttöliittymäkomponentti”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä HTML Academy-oppitunnilla?
Kyllä. Jokainen HTML Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- aside: täydentävä sisältö
- figure ja figcaption uudelleen
- details ja summary: avattava käyttöliittymäkomponentti
- progress- ja meter-elementit