CSS-egenskaper relatert til brukergrensesnitt
Denne artikkelen forklarer CSS-egenskaper relatert til brukergrensesnittet.
Du kan lære om egenskapene content, cursor, pointer-events og resize, inkludert deres bruksområder og hvordan du skriver dem.
YouTube Video
HTML for Forhåndsvisning
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>Brukergrensesnittrelatert
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 brukes til å legge til innhold i pseudo-elementer, hovedsakelig ::before eller ::after. Denne egenskapen brukes til å definere tekst, bilder, tellere osv., som ikke vises direkte i elementet. Dens hovedrolle er å tillate kontroll over dekorativt innhold eller tilleggsinformasjon som ikke er skrevet direkte i HTML, via stilark.
I dette eksempelet legges "Note: " til før elementet, og "(End)" legges til etter. Disse bruker pseudo-elementene ::before og ::after henholdsvis.
Verdier for 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 ha følgende verdier:.
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
- Du kan legge til tekst ved å omslutte en streng direkte med doble anførselstegn (
"").
- Du kan legge til tekst ved å omslutte en streng direkte med doble anførselstegn (
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}- Bilde
- Du kan sette inn et bilde ved å bruke funksjonen
url().
- Du kan sette inn et bilde ved å bruke funksjonen
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
- Bruk funksjonen
counter()for å vise en teller.
- Bruk funksjonen
1/* Attribute */
2.content-attr[title]::before {
3 content: attr(title);
4 display: inline-block;
5 margin-right: 0.5em;
6 color: darkgreen;
7}- Attributt
- Funksjonen
attr()kan brukes til å vise attributtverdien til et HTML-element. For eksempel kan du vise attributtettitle.
- Funksjonen
1/* None */
2.content-none::before {
3 content: none;
4}- ingen
- Angir at ikke noe innhold skal vises. Dette er standardtilstanden.
Bruksnotater
Når du bruker egenskapen content, må du huske på følgende punkter:.
content-egenskapen gjelder kun for pseudo-elementer, ikke vanlige elementer.- Siden det ikke legges til i DOM-en, kan det ikke manipuleres direkte med JavaScript.
- Det kan påvirke layouten, så det brukes vanligvis for å vise dekorativ eller tilleggsinformasjon.
cursor-egenskapen
cursor-egenskapen brukes til å spesifisere typen markør som vises når musepekeren plasseres over et element. Du kan spesifisere ulike markørstiler, og det brukes ofte på interaktive elementer for å forbedre brukeropplevelsen.
Hovedtyper av markører
Følgende verdier kan spesifiseres 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
defaulter den vanlige pilmarkøren (nettleserens standardmarkør).
pointer
pointerer en håndformet markør som vises når den plasseres over en lenke.
text
texter en I-bjelke-markør som vises i områder der tekst kan velges.
move
- `move` er en korsformet markør som brukes når et element kan draes.
crosshair
crosshairer en trådkorsmarkør for presis utvalg.
not-allowed
not-alloweder en markør for områder eller handlinger som ikke er tillatt.
help
helper en markør med et spørsmålstegn som vises når den plasseres over elementer som kan gi hjelpeinformasjon.
wait
waiter et timeglass eller en sirkulær markør som representerer en behandlingsstatus.
progress
progresser en markør som representerer en pågående operasjon. Den indikerer imidlertid at brukeren kan utføre andre operasjoner.
grab
graber en markør for å gripe dra-bare elementer.
grabbing
grabbinger en markør som indikerer at et element dras.
resize
resize er en markør som brukes når et vindu eller element kan endre størrelse. Det finnes forskjellige typer avhengig av retningen.
-
n-resize: En størrelsesendringsmarkør som peker oppover. -
s-resize: En størrelsesendringsmarkør som peker nedover. -
e-resize: En størrelsesendringsmarkør som peker mot høyre. -
w-resize: En størrelsesendringsmarkør som peker mot venstre. -
ne-resize: En størrelsesendringsmarkør som peker opp mot høyre. -
nw-resize: En størrelsesendringsmarkør som peker opp mot venstre. -
se-resize: En størrelsesendringsmarkør som peker ned mot høyre. -
sw-resize: En størrelsesendringsmarkør som peker ned mot venstre.
Egendefinert markør
1element {
2 cursor: url('custom-cursor.png'), auto;
3}Det er også mulig å angi en egendefinert markør ved hjelp av url().
- I dette eksempelet er
custom-cursor.pngbildefilen for markøren. Hvis bildet ikke er tilgjengelig, vises nettleserens standardmarkør medauto.
Sammendrag
cursor-egenskapen angir hvilken markør som skal vises når brukeren er over et element.- Det finnes ulike markørstiler avhengig av bruk, og egendefinerte markører kan også settes.
- Ved å velge passende markørstiler i henhold til interaktive elementer og begrensede operasjoner, kan en mer brukervennlig grensesnitt gis.
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 brukes til å kontrollere hvordan et element håndterer hendelser fra peker-enheter som mus, berøring og stylus. Normalt, når et element klikkes på eller holdes over av en bruker, mottar det pekerhendelser, men denne oppførselen kan endres ved hjelp av denne egenskapen.
-
I klassen
pointer-events-autoerpointer-events-egenskapen satt tilauto, som gjør det mulig å behandle normale klikk- og hover-hendelser. Elementet er klikkbart, så en melding vises når det klikkes på. -
I klassen
pointer-events-autoerpointer-events-egenskapen satt tilnone, så elementet mottar ikke pekerhendelser. Selv omcursor-egenskapen er satt tilpointer, endrer ikke musemarkøren seg, og andre elementer under blir klikkbare.
Verdityper
pointer-events-egenskapen angir om og hvordan et element mottar pekerhendelser. Du kan spesifisere følgende verdier.
auto
autoer standardverdien, hvor elementet mottar pekerhendelser som vanlig.
none
- Når
noneer spesifisert, mottar elementet ikke pekerhendelser. Elementet deaktiverer interaksjoner som å klikke og holde pekeren over, men andre elementer under kan motta pekerhendelser.
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;- Disse verdiene brukes hovedsakelig for SVG-elementer. Hver verdi styrer om spesifikke deler av et element (som fyll, omriss osv.) reagerer på pekerhendelser. Det brukes ikke ofte med vanlige HTML-elementer.
Nøkkelelementer for bruk
Her er noen eksempler på hvordan du kan bruke pointer-events-egenskapen.
-
Velge elementer du vil deaktivere
none-verdien er nyttig for midlertidig å deaktivere elementer som knapper eller lenker.
-
Bruk med overlappende elementer
- Når
position-egenskapen er satt tilabsolute, eller elementer er stablet medz-index-egenskapen, tillater innstilling avpointer-eventstilnonepå det øverste elementet at pekerhendelser sendes til elementet under.
- Når
resize-egenskap
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 er en CSS-egenskap som angir i hvilken retning et element kan endres størrelse av brukeren. Ved å bruke denne egenskapen kan du tillate at elementer endrer størrelse vertikalt eller horisontalt ved å dra, eller deaktivere størrelsesendring helt.
Verdityper
- Egenskapen
resizeangir retningene et element kan endres størrelse i. Du kan spesifisere følgende verdier.
both
- Å spesifisere
bothtillater at elementet endres størrelse både vertikalt og horisontalt.
horizontal
- Å spesifisere
horizontaltillater at elementet kun endres størrelse i horisontal retning (bredde).
vertical
- Å spesifisere
verticaltillater at elementet kun endres størrelse i vertikal retning (høyde).
none
- Å spesifisere
nonedeaktiverer størrelsesendring av elementet. Dette er standardverdien.
inherit
- Ved å spesifisere
inheritarver elementet verdien avresize-egenskapen fra sin forelder.
Notater
- For å gjøre et element justerbart, må du angi egenskapen
overflowsammen med egenskapenresize. Justerbare elementer kan trenge rullefelt, ogoverflow: autoblir vanligvis satt. - Justering brukes vanligvis med blokkelementer som
divogtextarea.
Du kan følge med på artikkelen ovenfor ved å bruke Visual Studio Code på vår YouTube-kanal. Vennligst sjekk ut YouTube-kanalen.