Interaktive elementer i HTML
Slideshow afbrudt… for 15%
Ingen tilmelding krævet.
Klik for at afsløre koden.
Kode: TEMA4
Interaktive elementer i HTML
Slideshow afbrudt… for 15%
Ingen tilmelding krævet.
Klik for at afsløre koden.
Kode: TEMA4
Indhold ovenpå indhold
overlay, popup, popover, dialog osv.
popover
backdrop (baggrundslag)
popover
non-modal
modal
vs.
non-modal
modal
vs.
popover
<dialog>
I sin enkleste form laver du en popover ved at tilføje attributten
popovertil det element, som skal vise selve popover-indholdet.
Du skal også give elementet etid, så det kan kobles sammen med det element, der åbner popoveren.
<button popovertarget="popup">Open popup</button>
<div popover id="popup">
<h2>I'm a popup</h2>
<p>Lorem ipsum dolor sit amet consectetur adipisicing.</p>
</div><button popovertarget="popup">Open popup</button>
<div popover id="popup">
<h2>I'm a popup</h2>
<p>Lorem ipsum dolor sit amet consectetur adipisicing.</p>
</div>popoverpopovertargetidpopovertarget
peger på id’et af den popover, der skal styres
id
bruges til at identificere popoveren og forbinde den med en kontrol
popover
markerer elementet som en popover
popoverpopovertargetidøvelse
Giv nyheden popover-attributten, og lad knappen pege på den via popovertarget og nyhedens id.
popover
id
popovertarget
Lad den forblive åben
<button popovertarget="popup">Open popup</button>
<div popover id="popup">
<h2>I'm a popup</h2>
<p>Lorem ipsum dolor sit amet consectetur adipisicing.</p>
</div>popover<button popovertarget="popup">Open popup</button>
<div popover id="popup">
<h2>I'm a popup</h2>
<p>Lorem ipsum dolor sit amet consectetur adipisicing.</p>
</div>popover::backdrop
pseudoelement, der repræsenterer det visuelle lag bag en popover
:popover-open
popover-elementet i åben tilstand
[popover]
popover-elementet
[ ]:popover-open::backdroppopoverattribut-selector
Ændr ikke display direkte — brug :popover-open til at style, når popover'en er synlig.
[popover] { /* eller #min-popover */
display: grid;
}[popover]:popover-open {
display: grid;
}Sørg for, at din popover passer til skærmen ved at begrænse bredde og højde.
[popover] {
max-height: 90vh;
max-width: 50ch;
width: 90vw;
}"Breaking news"-sektion
Opgaven
Glidende overgange
.circle {
/*...*/
transition: 300ms;
}.circle {
/*...*/
transition: all 300ms ease;
}.circle {
/*...*/
transition-duration: 300ms;
transition-behavior: normal;
transition-timing-function: ease;
transition-delay: 0s;
transition-property: all;
}0s
1s
{
transition: 1s;
}0s
1s
{
transition: 1s;
}display: none;
0s
1s
{
transition: 1s allow-discrete;
}display: none;
venter 1 sekund
Når et element vises for første gang – eller går fra display: none; til synligt – starter CSS-transitions ikke automatisk.
Browseren har nemlig ingen tidligere stil at animere fra.
@starting-style løser det ved at give elementet nogle startværdier, som browseren kan animere fra, når det dukker op.
0s
1s
.wrapper:hover .circle {
scale: 4;
display: block;
}
@starting-style {
.wrapper:hover .circle {
scale: 1;
}
}display: block;
<button popovertarget="popup">Open popup</button>
<div popover id="popup">
<h2>I'm a popup</h2>
<p>Lorem ipsum dolor sit amet consectetur adipisicing.</p>
</div>@starting-style {
...
}transition-behavior: allow-discrete;:popover-open {
...
}@starting-style {
...
}transition-behavior: allow-discrete;[popover] {
opacity: 0;
rotate: 360deg;
transition: .5s allow-discrete;
}
:popover-open {
opacity: 1;
rotate: none;
}@starting-style {
...
}transition-behavior: allow-discrete;[popover] {
opacity: 0;
rotate: 360deg;
transition: .5s allow-discrete;
}
:popover-open {
opacity: 1;
rotate: none;
}@starting-style {
opacity: 0;
rotate: -360deg;
}
transition-behavior: allow-discrete;
[popover] {
opacity: 0;
rotate: 360deg;
transition: .5s allow-discrete;
}
:popover-open {
opacity: 1;
rotate: none;
}
Lukket
Før åben
Åben
Lukket
Før åben
Åben