CSS-eigenschappen gerelateerd aan gebruikersinterface
Dit artikel legt CSS-eigenschappen uit die gerelateerd zijn aan de gebruikersinterface.
Je kunt leren over de eigenschappen content
, cursor
, pointer-events
en resize
, inclusief hun toepassingen en hoe je ze kunt schrijven.
YouTube Video
HTML voor Voorbeeldweergave
css-ui.html
1<!DOCTYPE html>
2<html lang="en">
3<head>
4 <meta charset="UTF-8">
5 <meta name="viewport" content="width=device-width, initial-scale=1.0">
6 <title>CSS Properties Example</title>
7 <link rel="stylesheet" href="css-base.css">
8 <link rel="stylesheet" href="css-ui.css">
9</head>
10<body>
11 <!-- Header -->
12 <header>
13 <h1>CSS Properties For Animation</h1>
14 </header>
15
16 <!-- Main content -->
17 <main>
18 <header>
19 <h2>User Inferface Related Properties</h2>
20 </header>
21 <article>
22 <h3>content</h3>
23 <section>
24 <h4>Content Examples</h4>
25 <header><h4>content: "Note: ";</h4></header>
26 <section class="sample-view">
27 <div class="content-note">Solid Red Outline</div>
28 </section>
29 <header><h4>content: " (End)";</h4></header>
30 <section class="sample-view">
31 <div class="content-end">Dashed Blue Outline</div>
32 </section>
33 </section>
34 </article>
35 <article>
36 <h3>content</h3>
37 <section>
38 <h4>Content Value Examples</h4>
39 <!-- Text -->
40 <header><h4>content: "Hello, world!";</h4></header>
41 <section class="sample-view">
42 <div class="content-text">This is a sample element.</div>
43 </section>
44 <!-- Image -->
45 <header><h4>content: url(image.png);</h4></header>
46 <section class="sample-view">
47 <div class="content-image">Image inserted before this text.</div>
48 </section>
49 <!-- Counter -->
50 <header><h4>content: counter(item);</h4></header>
51 <section class="sample-view">
52 <div class="content-counter">This is a counted item.</div>
53 </section>
54 <!-- Attribute -->
55 <header><h4>content: attr(title);</h4></header>
56 <section class="sample-view">
57 <div class="content-attr" title="Tooltip text">This displays title attribute as content.</div>
58 </section>
59 <!-- None -->
60 <header><h4>content: none;</h4></header>
61 <section class="sample-view">
62 <div class="content-none">No generated content is shown.</div>
63 </section>
64 </section>
65 </article>
66 <article>
67 <h3>cursor</h3>
68 <section>
69 <h4>Cursor Examples</h4>
70 <header><h4>cursor: default</h4></header>
71 <section class="sample-view">
72 <div class="default-cursor">This is the default cursor.</div>
73 </section>
74 <header><h4>cursor: pointer</h4></header>
75 <section class="sample-view">
76 <div class="pointer-cursor">This is the pointer cursor (hand).</div>
77 </section>
78 <header><h4>cursor: text</h4></header>
79 <section class="sample-view">
80 <div class="text-cursor">This is the text cursor (I-bar).</div>
81 </section>
82 <header><h4>cursor: move</h4></header>
83 <section class="sample-view">
84 <div class="move-cursor">This is the move cursor (cross-shaped).</div>
85 </section>
86 <header><h4>cursor: crosshair</h4></header>
87 <section class="sample-view">
88 <div class="crosshair-cursor">This is the crosshair cursor (precision cross).</div>
89 </section>
90 <header><h4>cursor: not-allowed</h4></header>
91 <section class="sample-view">
92 <div class="not-allowed-cursor">This is the not-allowed cursor (prohibited).</div>
93 </section>
94 <header><h4>cursor: help</h4></header>
95 <section class="sample-view">
96 <div class="help-cursor">This is the help cursor (question mark).</div>
97 </section>
98 <header><h4>cursor: wait</h4></header>
99 <section class="sample-view">
100 <div class="wait-cursor">This is the wait cursor (hourglass or spinner).</div>
101 </section>
102 <header><h4>cursor: progress</h4></header>
103 <section class="sample-view">
104 <div class="progress-cursor">This is the progress cursor<br>(loading, but user can still interact).</div>
105 </section>
106 <header><h4>cursor: grab</h4></header>
107 <section class="sample-view">
108 <div class="grab-cursor">This is the grab cursor (ready to drag).</div>
109 </section>
110 <header><h4>cursor: grabbing</h4></header>
111 <section class="sample-view">
112 <div class="grabbing-cursor">This is the grabbing cursor<br>(dragging in progress).</div>
113 </section>
114 <header><h4>cursor: resize</h4></header>
115 <section class="sample-view">
116 <div class="n-resize-cursor">This is the n-resize cursor (resize up).</div>
117 <div class="s-resize-cursor">This is the s-resize cursor (resize down).</div>
118 <div class="e-resize-cursor">This is the e-resize cursor (resize right).</div>
119 <div class="w-resize-cursor">This is the w-resize cursor (resize left).</div>
120 <div class="ne-resize-cursor">This is the ne-resize cursor (resize top-right).</div>
121 <div class="nw-resize-cursor">This is the nw-resize cursor (resize top-left).</div>
122 <div class="se-resize-cursor">This is the se-resize cursor<br>(resize bottom-right).</div>
123 <div class="sw-resize-cursor">This is the sw-resize cursor<br>(resize bottom-left).</div>
124 </section>
125 </section>
126 </article>
127 <article>
128 <h3>pointer-events</h3>
129 <section>
130 <h4>Pointer Events Examples</h4>
131 <header><h4>pointer-events: auto</h4></header>
132 <section class="sample-view">
133 <div class="pointer-events-auto" onclick="document.getElementById('message').innerHTML = 'Auto: This box is clickable!'">
134 Auto (Clickable)
135 </div>
136 </section>
137 <header><h4>pointer-events: none</h4></header>
138 <section class="sample-view">
139 <div class="pointer-events-none" onclick="document.getElementById('message').innerHTML = 'None: This box is not clickable!'">
140 None (Not Clickable)
141 </div>
142 </section>
143 <div id="message">Message Box</div>
144 </section>
145 </article>
146 <article>
147 <h3>resize</h3>
148 <section>
149 <header><h4>resize: both</h4></header>
150 <section class="sample-view">
151 <textarea class="resizable-both">Resizes both horizontally and vertically</textarea>
152 </section>
153 <header><h4>resize: horizontal</h4></header>
154 <section class="sample-view">
155 <textarea class="resizable-horizontal">Resizes horizontally</textarea>
156 </section>
157 <header><h4>resize: vertical</h4></header>
158 <section class="sample-view">
159 <textarea class="resizable-vertical">Resizes vertically</textarea>
160 </section>
161 <header><h4>resize: none</h4></header>
162 <section class="sample-view">
163 <textarea class="non-resizable">Cannot resize</textarea>
164 </section>
165 </section>
166 </article>
167 </main>
168</body>
169</html>
Gerelateerd aan gebruikersinterface
content
-eigenschap
1.content-note::before {
2 content: "Note: ";
3 color: red;
4 background-color: steelblue;
5 }
6
7.content-end::after {
8 content: " (End)";
9 color: blue;
10 background-color: lightsteelblue;
11}
De content
-eigenschap wordt gebruikt om inhoud toe te voegen aan pseudo-elementen, voornamelijk ::before
of ::after
. Deze eigenschap wordt gebruikt om tekst, afbeeldingen, tellers, enz. te definiëren, die niet direct binnen het element worden weergegeven. De belangrijkste rol is om decoratieve inhoud of aanvullende informatie te beheren die niet direct in HTML is geschreven via stijlen.
In dit voorbeeld wordt "Opmerking: " toegevoegd vóór het element en "(Einde)" erna toegevoegd. Deze maken respectievelijk gebruik van de pseudo-elementen ::before
en ::after
.
Waarden van de content
-eigenschap
1/* Text */
2content: "Hello, world!";
3
4/* Image */
5content: url(image.png);
6
7/* Counter */
8content: counter(item);
9
10/* Attribute */
11content: attr(title);
12
13/* None */
14content: none;
De content
-eigenschap kan de volgende waarden aannemen:.
1/* Text */
2.content-text::before {
3 content: "Hello, world!";
4 display: inline-block;
5 margin-right: 0.5em;
6 color: #333;
7 font-weight: bold;
8}
- Tekst
- Je kunt tekst toevoegen door een tekenreeks direct tussen dubbele aanhalingstekens (
""
) te plaatsen.
- Je kunt tekst toevoegen door een tekenreeks direct tussen dubbele aanhalingstekens (
1/* Image */
2.content-image::before {
3 content: url('custom-bullet.png');
4 display: inline-block;
5 margin-right: 0.5em;
6 vertical-align: middle;
7}
- Afbeelding
- Je kunt een afbeelding invoegen met de functie
url()
.
- Je kunt een afbeelding invoegen met de functie
1/* Counter */
2.content-counter {
3 counter-reset: item;
4}
5.content-counter::before {
6 counter-increment: item;
7 content: counter(item) ". ";
8 margin-right: 0.5em;
9 font-weight: bold;
10}
- Teller
- Gebruik de functie
counter()
om een teller weer te geven.
- Gebruik de functie
1/* Attribute */
2.content-attr[title]::before {
3 content: attr(title);
4 display: inline-block;
5 margin-right: 0.5em;
6 color: darkgreen;
7}
- Attribuut
- De functie
attr()
kan worden gebruikt om de attribuutwaarde van een HTML-element weer te geven. Je kunt bijvoorbeeld hettitle
-attribuut weergeven.
- De functie
1/* None */
2.content-none::before {
3 content: none;
4}
- geen
- Geeft aan dat er geen inhoud moet worden weergegeven. Dit is de standaardinstelling.
Gebruiksnotities
Houd rekening met de volgende punten bij het gebruik van de eigenschap content
:.
- De
content
-eigenschap is alleen van toepassing op pseudo-elementen, niet op gewone elementen. - Aangezien het niet wordt toegevoegd aan de DOM, kan het niet direct met JavaScript worden gemanipuleerd.
- Het kan de lay-out beïnvloeden en wordt daarom vaak gebruikt voor het weergeven van decoratieve of aanvullende informatie.
cursor
-eigenschap
De cursor
-eigenschap wordt gebruikt om het type cursor te specificeren dat wordt weergegeven wanneer de muispointer boven een element wordt geplaatst. Je kunt verschillende cursorstijlen specificeren en het wordt vaak toegepast op interactieve elementen om de gebruikerservaring te verbeteren.
Belangrijkste cursortypen
De volgende waarden kunnen worden gespecificeerd als cursortypen:.
1.default-cursor { cursor: default; }
2.pointer-cursor { cursor: pointer; }
3.text-cursor { cursor: text; }
4.move-cursor { cursor: move; }
5.crosshair-cursor { cursor: crosshair; }
6.not-allowed-cursor { cursor: not-allowed; }
7.help-cursor { cursor: help; }
8.wait-cursor { cursor: wait; }
9.progress-cursor { cursor: progress; }
10.grab-cursor { cursor: grab; }
11.grabbing-cursor { cursor: grabbing; }
12.n-resize-cursor { cursor: n-resize; }
13.s-resize-cursor { cursor: s-resize; }
14.e-resize-cursor { cursor: e-resize; }
15.w-resize-cursor { cursor: w-resize; }
16.ne-resize-cursor { cursor: ne-resize; }
17.nw-resize-cursor { cursor: nw-resize; }
18.se-resize-cursor { cursor: se-resize; }
19.sw-resize-cursor { cursor: sw-resize; }
default
default
is de normale pijlcursor (de standaardcursor van de browser).
pointer
pointer
is een handvormige cursor die wordt weergegeven wanneer deze boven een link is geplaatst.
text
text
is een I-balkcursor die wordt weergegeven in gebieden waar tekst kan worden geselecteerd.
move
- `move` is een kruisvormige cursor die wordt gebruikt wanneer een element kan worden versleept.
crosshair
crosshair
is een crosshair-cursor voor precieze selectie.
not-allowed
not-allowed
is een cursor voor gebieden of acties die niet zijn toegestaan.
help
help
is een cursor met een vraagteken die wordt weergegeven boven elementen die hulpinformatie kunnen bieden.
wait
wait
is een zandloper- of cirkelvormige cursor die een verwerkingsstatus aangeeft.
progress
progress
is een cursor die een lopende operatie aangeeft. Echter, het geeft aan dat de gebruiker andere handelingen kan uitvoeren.
grab
grab
is een cursor voor het vastpakken van sleepbare elementen.
grabbing
grabbing
is een cursor die aangeeft dat een element wordt versleept.
resize
resize
is een cursor die wordt gebruikt wanneer een venster of element kan worden vergroot of verkleind. Er zijn verschillende typen afhankelijk van de richting.
-
n-resize
: Een formaatwijzigingscursor die omhoog wijst. -
s-resize
: Een formaatwijzigingscursor die omlaag wijst. -
e-resize
: Een formaatwijzigingscursor die naar rechts wijst. -
w-resize
: Een formaatwijzigingscursor die naar links wijst. -
ne-resize
: Een formaatwijzigingscursor die naar rechtsboven wijst. -
nw-resize
: Een formaatwijzigingscursor die naar linksboven wijst. -
se-resize
: Een formaatwijzigingscursor die naar rechtsonder wijst. -
sw-resize
: Een formaatwijzigingscursor die naar linksonder wijst.
Aangepaste cursor
1element {
2 cursor: url('custom-cursor.png'), auto;
3}
Het is ook mogelijk om een aangepaste cursor in te stellen met behulp van url()
.
- In dit voorbeeld is
custom-cursor.png
het afbeeldingsbestand voor de cursor. Als dat afbeeldingsbestand niet beschikbaar is, wordt de standaardcursor van de browser weergegeven metauto
.
Samenvatting
- De eigenschap
cursor
geeft aan welke cursor moet worden weergegeven wanneer de gebruiker zich boven een element bevindt. - Er zijn verschillende cursorstijlen beschikbaar afhankelijk van het gebruik, en er kunnen ook aangepaste cursors worden ingesteld.
- Door geschikte cursorstijlen te selecteren op basis van interactieve elementen en beperkte handelingen, kan een gebruiksvriendelijkere UI worden geboden.
Eigenschap pointer-events
1.pointer-events-auto {
2 pointer-events: auto;
3 background-color: lightblue;
4 cursor: pointer;
5}
6
7.pointer-events-none {
8 pointer-events: none;
9 background-color: lightcoral;
10 cursor: pointer;
11}
De eigenschap pointer-events
wordt gebruikt om te bepalen hoe een element omgaat met gebeurtenissen van aanwijzingstoestellen zoals muis, aanraking en stylus. Normaal gesproken ontvangt een element aanwijzingsgebeurtenissen wanneer een gebruiker erop klikt of het aanwijst, maar dit gedrag kan worden aangepast met behulp van deze eigenschap.
-
In de
pointer-events-auto
klasse is de eigenschappointer-events
ingesteld opauto
, waardoor normale klik- en hovergebeurtenissen kunnen worden verwerkt. Het element is aanklikbaar, dus wordt er een bericht weergegeven wanneer erop wordt geklikt. -
In de
pointer-events-auto
klasse is de eigenschappointer-events
ingesteld opnone
, waardoor het element geen aanwijzingsgebeurtenissen ontvangt. Zelfs als de eigenschapcursor
is ingesteld oppointer
, verandert de muiscursor niet en worden de onderliggende elementen aanklikbaar.
Waarde types
- De eigenschap
pointer-events
geeft aan of en hoe een element aanwijzingsgebeurtenissen ontvangt. Je kunt de volgende waarden specificeren.
auto
auto
is de standaardwaarde, waarbij het element normaal gesproken pointer-gebeurtenissen ontvangt.
none
- Wanneer
none
is opgegeven, ontvangt het element geen pointer-gebeurtenissen. Het element schakelt interacties zoals klikken en zweven uit, maar andere elementen eronder kunnen wel pointer-gebeurtenissen ontvangen.
visiblePainted
, visibleFill
, visibleStroke
, visible
, painted
, fill
, stroke
, all
, inherit
1pointer-events: visiblePainted;
2pointer-events: visibleFill;
3pointer-events: visibleStroke;
4pointer-events: visible;
5pointer-events: painted;
6pointer-events: fill;
7pointer-events: stroke;
8pointer-events: all;
9pointer-events: inherit;
- Deze waarden worden voornamelijk gebruikt voor SVG-elementen. Elke waarde bepaalt of specifieke delen van een element (zoals vulling, lijn, enz.) reageren op pointer-gebeurtenissen. Het wordt meestal niet gebruikt met reguliere HTML-elementen.
Belangrijke punten voor gebruik
Hier zijn enkele voorbeelden van hoe de eigenschap pointer-events
te gebruiken.
-
Het selecteren van elementen die je wilt uitschakelen
- De
none
-waarde is handig om tijdelijk elementen zoals knoppen of links uit te schakelen.
- De
-
Gebruik met over elkaar geplaatste elementen
- Wanneer de eigenschap
position
is ingesteld opabsolute
of elementen zijn gelaagd met behulp van de eigenschapz-index
, zal het instellen vanpointer-events
opnone
voor het bovenste element pointer-gebeurtenissen naar het element eronder toestaan.
- Wanneer de eigenschap
Eigenschap resize
1.resizable-both {
2 resize: both;
3 overflow: auto;
4 width: 200px;
5 height: 100px;
6 border: 1px solid black;
7}
8
9.resizable-horizontal {
10 resize: horizontal;
11 overflow: auto;
12 width: 200px;
13 height: 100px;
14 border: 1px solid black;
15}
16
17.resizable-vertical {
18 resize: vertical;
19 overflow: auto;
20 width: 200px;
21 height: 100px;
22 border: 1px solid black;
23}
24
25.non-resizable {
26 resize: none;
27 overflow: auto;
28 width: 200px;
29 height: 100px;
30 border: 1px solid black;
31}
De eigenschap resize
is een CSS-eigenschap die bepaalt in welke richting een element door de gebruiker kan worden aangepast. Met deze eigenschap kun je toestaan dat elementen verticaal of horizontaal worden aangepast door te slepen, of het aanpassen volledig uitschakelen.
Waarde types
- De eigenschap "resize" specificeert de richtingen waarin een element kan worden verkleind. Je kunt de volgende waarden specificeren.
both
- Wanneer
both
wordt gespecificeerd, kan het element zowel verticaal als horizontaal worden aangepast.
horizontal
- Wanneer
horizontal
wordt gespecificeerd, kan het element alleen horizontaal worden aangepast (breedte).
vertical
- Wanneer
vertical
wordt gespecificeerd, kan het element alleen verticaal worden aangepast (hoogte).
none
- Wanneer
none
wordt gespecificeerd, wordt het aanpassen van het element uitgeschakeld. Dit is de standaardwaarde.
inherit
- Door
inherit
op te geven, erft het element de waarde van de eigenschapresize
van zijn ouder.
Notities
- Om een element aanpasbaar in grootte te maken, moet je zowel de eigenschap
overflow
als de eigenschapresize
instellen. Grootte-aanpasbare elementen kunnen scrollbars nodig hebben, en meestal wordtoverflow: auto
ingesteld. - Het aanpassen van de grootte wordt over het algemeen gebruikt bij block-elementen zoals
div
entextarea
.
Je kunt het bovenstaande artikel volgen met Visual Studio Code op ons YouTube-kanaal. Bekijk ook het YouTube-kanaal.