CSS-egenskaper relaterade till användargränssnitt
Den här artikeln förklarar CSS-egenskaper relaterade till användargränssnitt.
Du kan lära dig om egenskaperna content, cursor, pointer-events och resize, inklusive deras användningsområden och hur man skriver dem.
YouTube Video
HTML för förhandsgranskning
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>Relaterat till användargränssnitt
content-egenskapen
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}content-egenskapen används för att lägga till innehåll till pseudo-element, främst ::before eller ::after. Denna egenskap används för att definiera text, bilder, räknare etc., som inte direkt visas inuti elementet. Dess huvudfunktion är att möjliggöra kontroll över dekorativt innehåll eller kompletterande information som inte skrivs direkt i HTML genom stilmallar.
I detta exempel läggs "Notera: " till före elementet och "(Slut)" läggs till efter. Dessa använder pseudo-elementen ::before respektive ::after.
Värden för content-egenskapen
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;content-egenskapen kan anta följande värden:.
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}- Text
- Du kan lägga till text genom att omsluta en sträng direkt med dubbla citattecken (
"").
- Du kan lägga till text genom att omsluta en sträng direkt med dubbla citattecken (
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}- Bild
- Du kan infoga en bild med hjälp av funktionen
url().
- Du kan infoga en bild med hjälp av funktionen
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}- Räknare
- Använd funktionen
counter()för att visa en räknare.
- Använd funktionen
1/* Attribute */
2.content-attr[title]::before {
3 content: attr(title);
4 display: inline-block;
5 margin-right: 0.5em;
6 color: darkgreen;
7}- Attribut
attr()-funktionen kan användas för att visa attributvärdet för ett HTML-element. Till exempel kan du visatitle-attributet.
1/* None */
2.content-none::before {
3 content: none;
4}- ingen
- Anger att inget innehåll ska visas. Detta är standardläget.
Användningsanteckningar
När du använder egenskapen content bör du tänka på följande punkter:.
content-egenskapen gäller endast pseudo-element, inte vanliga element.- Eftersom det inte läggs till i DOM:en kan det inte manipuleras direkt med JavaScript.
- Det kan påverka layouten, så det används ofta för att visa dekorativ eller kompletterande information.
cursor-egenskapen
cursor-egenskapen används för att ange vilken typ av markör som ska visas när muspekaren placeras över ett element. Du kan ange olika markörstilar, och det används ofta på interaktiva element för att förbättra användarupplevelsen.
Huvudsakliga markörtyper
Följande värden kan anges som markörtyper:.
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är den vanliga pilmarkören (webbläsarens standardmarkör).
pointer
pointerär en handformad markör som visas när den placeras över en länk.
text
textär en I-balksmarkör som visas i områden där text kan markeras.
move
- `move` är en korsformad markör som används när ett element kan dras.
crosshair
crosshairär en hårkorsmarkör för exakt val.
not-allowed
not-allowedär en markör för områden eller åtgärder som inte är tillåtna.
help
helpär en markör med ett frågetecken som visas när den placeras över element som kan ge hjälpinformation.
wait
waitär ett timglas eller en cirkulär markör som representerar ett bearbetningstillstånd.
progress
progressär en markör som representerar en pågående operation. Dock indikerar den att användaren kan utföra andra åtgärder.
grab
grabär en markör för att greppa dragbara element.
grabbing
grabbingär en markör som indikerar att ett element dras.
resize
resize är en markör som används när ett fönster eller element kan ändra storlek. Det finns olika typer beroende på riktningen.
-
n-resize: En ändringsmarkör som pekar uppåt. -
s-resize: En ändringsmarkör som pekar nedåt. -
e-resize: En ändringsmarkör som pekar åt höger. -
w-resize: En ändringsmarkör som pekar åt vänster. -
ne-resize: En ändringsmarkör som pekar uppåt till höger. -
nw-resize: En ändringsmarkör som pekar uppåt till vänster. -
se-resize: En ändringsmarkör som pekar nedåt till höger. -
sw-resize: En ändringsmarkör som pekar nedåt till vänster.
Anpassad markör
1element {
2 cursor: url('custom-cursor.png'), auto;
3}Det är också möjligt att ange en anpassad markör med url().
- I det här exemplet är
custom-cursor.pngbildfilen för markören. Om den bilden inte är tillgänglig visas webbläsarens standardmarkör medauto.
Sammanfattning
cursor-egenskapen anger vilken markör som ska visas när användaren är över ett element.- Det finns olika markörstilar tillgängliga beroende på användning, och anpassade markörer kan även anges.
- Genom att välja lämpliga markörstilar beroende på interaktiva element och begränsade åtgärder kan en mer användarvänlig UI tillhandahållas.
pointer-events-egenskapen
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}pointer-events-egenskapen används för att kontrollera hur ett element hanterar händelser från pekdon som mus, touch och pekpenna. Normalt, när ett element klickas på eller hovras över av en användare, tar det emot pekhändelser, men detta beteende kan ändras med hjälp av denna egenskap.
-
I klassen
pointer-events-autoärpointer-events-egenskapen inställd påauto, vilket gör att vanliga klick- och händelseövergångar kan bearbetas. Elementet är klickbart, så ett meddelande visas när det klickas på. -
I klassen
pointer-events-autoärpointer-events-egenskapen inställd pånone, så elementet tar inte emot pekhändelser. Även omcursor-egenskapen är inställd påpointer, ändras inte musmarkören, och andra element under blir klickbara.
Värdetyper
pointer-events-egenskapen anger om och hur ett element tar emot pekhändelser. Du kan ange följande värden.
auto
autoär standardvärdet, där elementet tar emot pekhändelser normalt.
none
- När
noneanges tar inte elementet emot pekhändelser. Elementet inaktiverar interaktioner som att klicka och hovra, men andra element under kan ta emot pekhändelser.
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;- Dessa värden används främst för SVG-element. Varje värde styr om specifika delar av ett element (som fyllning, kontur, etc.) svarar på pekhändelser. Det används inte ofta med vanliga HTML-element.
Viktiga punkter för användning
Här är några exempel på hur du kan använda pointer-events-egenskapen.
-
Välja element du vill inaktivera
- Värdet
noneär användbart för att tillfälligt inaktivera element som knappar eller länkar.
- Värdet
-
Användning med överlappande element
- När
position-egenskapen är inställd påabsoluteeller element lagerläggs medz-index, gör inställningenpointer-eventstillnonepå det översta elementet att pekhändelser kan skickas till elementet under.
- När
resize-egenskapen
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}resize-egenskapen är en CSS-egenskap som specificerar i vilken riktning ett element kan ändras i storlek av användaren. Genom att använda denna egenskap kan du tillåta att element storleksändras vertikalt eller horisontellt genom att dra, eller inaktivera storleksändring helt och hållet.
Värdetyper
- Egenskapen
resizeanger i vilka riktningar ett element kan ändras i storlek. Du kan ange följande värden.
both
- Om
bothanges kan elementet ändras i storlek både vertikalt och horisontellt.
horizontal
- Om
horizontalanges kan elementet ändras i storlek endast i horisontell riktning (bredd).
vertical
- Om
verticalanges kan elementet ändras i storlek endast i vertikal riktning (höjd).
none
- Om
noneanges inaktiveras storleksändring av elementet. Det här är standardvärdet.
inherit
- Att ange
inheritgör att elementet ärver värdet avresize-egenskapen från sin förälder.
Anteckningar
- För att göra ett element justerbart måste du ställa in
overflow-egenskapen tillsammans medresize-egenskapen. Justerbara element kan kräva rullningslister, ochoverflow: autosätts vanligtvis. - Storleksändring används vanligtvis med blockelement som
divochtextarea.
Du kan följa med i artikeln ovan med hjälp av Visual Studio Code på vår YouTube-kanal. Vänligen kolla även in YouTube-kanalen.