Właściwości CSS związane z interfejsem użytkownika
Ten artykuł wyjaśnia właściwości CSS związane z interfejsem użytkownika.
Możesz dowiedzieć się o właściwościach content, cursor, pointer-events i resize, w tym o ich zastosowaniach i sposobach ich pisania.
YouTube Video
HTML do podglądu
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>Związane z interfejsem użytkownika
Właściwość content
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}Właściwość content służy do dodawania treści do pseudo-elementów, głównie ::before lub ::after. Ta właściwość służy do definiowania tekstu, obrazów, liczników itp., które nie są bezpośrednio wyświetlane wewnątrz elementu. Jej główną rolą jest umożliwienie kontroli nad treścią dekoracyjną lub dodatkowymi informacjami, które nie są zapisane bezpośrednio w HTML, za pomocą arkuszy stylów.
W tym przykładzie "Note: " zostało dodane przed elementem, a "(End)" zostało dodane po nim. Używane są tutaj pseudo-elementy ::before oraz ::after odpowiednio.
Wartości właściwości content
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;Właściwość content może przyjmować następujące wartości:.
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
- Możesz dodać tekst, umieszczając ciąg bezpośrednio w podwójnych cudzysłowach (
"").
- Możesz dodać tekst, umieszczając ciąg bezpośrednio w podwójnych cudzysłowach (
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}- Obraz
- Możesz wstawić obraz za pomocą funkcji
url().
- Możesz wstawić obraz za pomocą funkcji
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}- Licznik
- Użyj funkcji
counter(), aby wyświetlić licznik.
- Użyj funkcji
1/* Attribute */
2.content-attr[title]::before {
3 content: attr(title);
4 display: inline-block;
5 margin-right: 0.5em;
6 color: darkgreen;
7}- Atrybut
- Funkcja
attr()może być użyta do wyświetlenia wartości atrybutu elementu HTML. Na przykład możesz wyświetlić atrybuttitle.
- Funkcja
1/* None */
2.content-none::before {
3 content: none;
4}- brak
- Określa, że żadna zawartość nie powinna być wyświetlana. Jest to stan domyślny.
Uwagi dotyczące użycia
Używając właściwości content, pamiętaj o następujących kwestiach:.
- Właściwość
contentma zastosowanie tylko do pseudo-elementów, a nie do zwykłych elementów. - Ponieważ nie jest dodana do DOM, nie można jej bezpośrednio manipulować za pomocą JavaScriptu.
- Może wpłynąć na układ, dlatego jest często używana do wyświetlania treści dekoracyjnych lub dodatkowych informacji.
Właściwość cursor
Właściwość cursor służy do określania rodzaju kursora, który ma być wyświetlany, gdy wskaźnik myszy znajduje się nad elementem. Możesz określić różne style kursora, które często stosuje się do interaktywnych elementów w celu poprawy doświadczenia użytkownika.
Główne typy kursorów
Następujące wartości mogą być określone jako typy kursorów:.
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
defaultto normalny kursor w postaci strzałki (domyślny kursor przeglądarki).
pointer
pointerto kursor w kształcie dłoni wyświetlany, gdy znajduje się nad linkiem.
text
textto kursor w kształcie belki tekstowej wyświetlany w miejscach, gdzie można zaznaczyć tekst.
move
- `move` to kursor w kształcie krzyża używany, gdy element można przeciągać.
crosshair
crosshairto kursor w kształcie celownika do precyzyjnego zaznaczania.
not-allowed
not-allowedto kursor wskazujący obszary lub akcje, które są niedozwolone.
help
helpto kursor z pytajnikiem wyświetlany, gdy znajduje się nad elementami, które mogą zapewnić informacje pomocne.
wait
waitto kursor w kształcie klepsydry lub koła reprezentujący stan przetwarzania.
progress
progressto kursor wskazujący wykonywanie operacji w toku. Jednak wskazuje, że użytkownik może wykonywać inne operacje.
grab
grabto kursor do chwytania przeciągalnych elementów.
grabbing
grabbingto kursor wskazujący, że element jest przeciągany.
resize
resize to kursor używany, gdy można zmienić rozmiar okna lub elementu. Istnieją różne typy w zależności od kierunku.
-
n-resize: Kursor zmiany rozmiaru wskazujący w górę. -
s-resize: Kursor zmiany rozmiaru wskazujący w dół. -
e-resize: Kursor zmiany rozmiaru wskazujący w prawo. -
w-resize: Kursor zmiany rozmiaru wskazujący w lewo. -
ne-resize: Kursor zmiany rozmiaru wskazujący w prawy górny róg. -
nw-resize: Kursor zmiany rozmiaru wskazujący w lewy górny róg. -
se-resize: Kursor zmiany rozmiaru wskazujący w prawy dolny róg. -
sw-resize: Kursor zmiany rozmiaru wskazujący w lewy dolny róg.
Kursor niestandardowy
1element {
2 cursor: url('custom-cursor.png'), auto;
3}Można również określić niestandardowy kursor za pomocą url().
- W tym przykładzie
custom-cursor.pngjest plikiem obrazu dla kursora. Jeśli ten obraz nie jest dostępny, przeglądarka wyświetli domyślny kursor za pomocąauto.
Podsumowanie
- Właściwość
cursorokreśla, który kursor powinien być wyświetlany, gdy użytkownik znajduje się nad elementem. - Dostępne są różne style kursora w zależności od zastosowania, a także można ustawić kursory niestandardowe.
- Dobór odpowiednich stylów kursora dla elementów interaktywnych i operacji ograniczonych może zapewnić bardziej przyjazny interfejs użytkownika.
Właściwość 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}Właściwość pointer-events służy do kontrolowania, w jaki sposób element obsługuje zdarzenia z urządzeń wskazujących, takich jak mysz, ekran dotykowy i rysik. Normalnie, gdy użytkownik kliknie lub najedzie kursorem na element, otrzymuje on zdarzenia wskazujące, ale to zachowanie można zmienić za pomocą tej właściwości.
-
W klasie
pointer-events-autowłaściwośćpointer-eventsjest ustawiona naauto, co pozwala na przetwarzanie normalnych zdarzeń kliknięcia i najechania kursorem. Element jest klikalny, dlatego po kliknięciu wyświetlany jest komunikat. -
W klasie
pointer-events-autowłaściwośćpointer-eventsjest ustawiona nanone, więc element nie odbiera zdarzeń wskazujących. Nawet jeśli właściwośćcursorjest ustawiona napointer, kursor myszy się nie zmienia, a inne elementy znajdujące się pod spodem stają się klikalne.
Typy wartości
- Właściwość
pointer-eventsokreśla, czy i w jaki sposób element odbiera zdarzenia wskazujące. Możesz określić następujące wartości.
auto
autoto domyślna wartość, w której element normalnie reaguje na zdarzenia wskaźnika.
none
- Gdy jest ustawione
none, element nie reaguje na zdarzenia wskaźnika. Element wyłącza interakcje, takie jak klikanie i najeżdżanie, ale inne elementy poniżej mogą odbierać zdarzenia wskaźnika.
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;- Te wartości są głównie używane dla elementów SVG. Każda wartość określa, czy konkretne części elementu (takie jak wypełnienie, obrys itp.) reagują na zdarzenia wskaźnika. Nie jest to często używane z typowymi elementami HTML.
Kluczowe aspekty użytkowania
Poniżej znajdują się przykłady użycia właściwości pointer-events.
-
Wybieranie elementów, które chcesz wyłączyć
- Wartość
nonejest przydatna do tymczasowego wyłączania elementów, takich jak przyciski lub linki.
- Wartość
-
Użycie z nakładającymi się elementami
- Gdy właściwość
positionjest ustawiona naabsolutelub elementy są warstwowane za pomocą właściwościz-index, ustawieniepointer-eventsnanonedla najwyższego elementu pozwala na wysyłanie zdarzeń wskaźnika do elementu poniżej.
- Gdy właściwość
Właściwość 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}Właściwość resize to właściwość CSS, która określa, w jakim kierunku użytkownik może zmienić rozmiar elementu. Korzystając z tej właściwości, możesz pozwolić na zmianę rozmiaru elementów w pionie lub poziomie poprzez przeciąganie, albo całkowicie wyłączyć możliwość zmiany rozmiaru.
Typy wartości
- Właściwość
resizeokreśla kierunki, w których element może być zmieniany rozmiarem. Możesz określić następujące wartości.
both
- Ustawienie wartości
bothpozwala na zmianę rozmiaru elementu zarówno w pionie, jak i w poziomie.
horizontal
- Ustawienie wartości
horizontalpozwala na zmianę rozmiaru elementu tylko w kierunku poziomym (szerokość).
vertical
- Ustawienie wartości
verticalpozwala na zmianę rozmiaru elementu tylko w kierunku pionowym (wysokość).
none
- Ustawienie wartości
nonewyłącza możliwość zmiany rozmiaru elementu. To jest domyślna wartość.
inherit
- Określenie wartości
inheritpowoduje, że element dziedziczy wartość właściwościresizeod swojego rodzica.
Notatki
- Aby umożliwić skalowanie elementu, należy ustawić właściwość
overflowrazem z właściwościąresize. Skalowalne elementy mogą wymagać pasków przewijania, dlatego zazwyczaj ustawiana jest wartośćoverflow: auto. - Skalowanie jest zazwyczaj stosowane w przypadku elementów blokowych, takich jak
divitextarea.
Możesz śledzić ten artykuł, korzystając z Visual Studio Code na naszym kanale YouTube. Proszę również sprawdzić nasz kanał YouTube.