CSS свойства, связанные с пользовательским интерфейсом
Эта статья объясняет свойства CSS, связанные с пользовательским интерфейсом.
Вы можете узнать о свойствах content, cursor, pointer-events и resize, включая их примеры использования и написания.
YouTube Video
HTML для предварительного просмотра
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>Связано с пользовательским интерфейсом
Свойство 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}Свойство content используется для добавления содержимого к псевдоэлементам, главным образом ::before или ::after. Это свойство используется для определения текста, изображений, счетчиков и т. д., которые не отображаются непосредственно внутри элемента. Его основная роль заключается в управлении декоративным содержанием или дополнительной информацией, которая не прописана напрямую в HTML через таблицы стилей.
В этом примере перед элементом добавляется "Note: ", а после — "(End)". Для этого используются псевдоэлементы ::before и ::after соответственно.
Значения свойства 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;Свойство content может принимать следующие значения:.
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}- Текст
- Вы можете добавить текст, заключив строку непосредственно в двойные кавычки (
"").
- Вы можете добавить текст, заключив строку непосредственно в двойные кавычки (
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}- Изображение
- Вы можете вставить изображение с помощью функции
url().
- Вы можете вставить изображение с помощью функции
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}- Счетчик
- Используйте функцию
counter(), чтобы отобразить счетчик.
- Используйте функцию
1/* Attribute */
2.content-attr[title]::before {
3 content: attr(title);
4 display: inline-block;
5 margin-right: 0.5em;
6 color: darkgreen;
7}- Атрибут
- Функция
attr()может быть использована для отображения значения атрибута HTML-элемента. Например, вы можете отобразить атрибутtitle.
- Функция
1/* None */
2.content-none::before {
3 content: none;
4}- нет
- Указывает, что содержимое не должно отображаться. Это состояние по умолчанию.
Примечания по использованию
При использовании свойства content имейте в виду следующие моменты:.
- Свойство
contentприменяется только к псевдоэлементам, а не к обычным элементам. - Поскольку оно не добавляется в DOM, им нельзя напрямую управлять с помощью JavaScript.
- Это может повлиять на макет, поэтому оно часто используется для отображения декоративной или дополнительной информации.
Свойство cursor
Свойство cursor используется для указания типа курсора, который отображается, когда указатель мыши находится над элементом. Вы можете указать различные стили курсора, и оно часто применяется к интерактивным элементам для улучшения пользовательского опыта.
Основные типы курсоров
Следующие значения могут быть указаны в качестве типов курсора:.
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— это обычный стрелочный курсор (курсор по умолчанию в браузере).
pointer
pointer— это курсор в форме руки, отображаемый при наведении на ссылку.
text
text— это курсор в форме I-балки, отображаемый в областях, где можно выделить текст.
move
- `move` — это крестовидный курсор, используемый, когда элемент можно перемещать.
crosshair
crosshair— это курсор в форме перекрестия для точного выбора.
not-allowed
not-allowed— это курсор для областей или действий, которые не разрешены.
help
help— это курсор с вопросительным знаком, отображаемый при наведении на элементы, которые могут предоставить справочную информацию.
wait
wait— это курсор в виде песочных часов или круга, который отображает состояние обработки.
progress
progress— это курсор, отображающий текущую операцию. Однако он указывает, что пользователь может выполнять другие операции.
grab
grab— это курсор для захвата перетаскиваемых элементов.
grabbing
grabbing— это курсор, указывающий, что элемент перетаскивается.
resize
resize — это курсор, используемый, когда окно или элемент можно изменить в размере. Существуют разные типы в зависимости от направления.
-
n-resize: Курсор изменения размера, указывающий вверх. -
s-resize: Курсор изменения размера, указывающий вниз. -
e-resize: Курсор изменения размера, указывающий вправо. -
w-resize: Курсор изменения размера, указывающий влево. -
ne-resize: Курсор изменения размера, указывающий вправо вверх. -
nw-resize: Курсор изменения размера, указывающий влево вверх. -
se-resize: Курсор изменения размера, указывающий вправо вниз. -
sw-resize: Курсор изменения размера, указывающий влево вниз.
Пользовательский курсор
1element {
2 cursor: url('custom-cursor.png'), auto;
3}Также возможно указать пользовательский курсор с помощью url().
- В этом примере
custom-cursor.png— это файл изображения для курсора. Если это изображение недоступно, отображается стандартный курсор браузера с помощьюauto.
Резюме
- Свойство
cursorуказывает, какой курсор должен отображаться, когда пользователь находится над элементом. - Существует множество доступных стилей курсора в зависимости от использования, и также можно задать пользовательские курсоры.
- Выбирая соответствующие стили курсора в зависимости от интерактивных элементов и ограниченных операций, можно обеспечить более удобный пользовательский интерфейс.
Свойство 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}Свойство pointer-events используется для управления тем, как элемент обрабатывает события от указательных устройств, таких как мышь, сенсорный экран и стилус. Как правило, когда пользователь кликает по элементу или наводит на него курсор, элемент получает указательные события, но это поведение можно изменить с помощью этого свойства.
-
В классе
pointer-events-autoсвойствоpointer-eventsустановлено в значениеauto, что позволяет обрабатывать обычные события наведения и нажатия. Элемент является кликабельным, поэтому при клике отображается сообщение. -
В классе
pointer-events-autoсвойствоpointer-eventsустановлено в значениеnone, поэтому элемент не получает указательных событий. Даже если свойствоcursorустановлено в значениеpointer, курсор мыши не изменяется, и другие элементы под ним становятся кликабельными.
Типы значений
- Свойство
pointer-eventsопределяет, получает ли элемент указательные события и как они обрабатываются. Вы можете указать следующие значения.
auto
autoявляется значением по умолчанию, при котором элемент нормально обрабатывает события указателя.
none
- Если указано значение
none, элемент не обрабатывает события указателя. Элемент выключает взаимодействия, такие как нажатия и наведение, но другие элементы под ним могут обрабатывать события указателя.
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;- Эти значения в основном используются для элементов SVG. Каждое значение определяет, будут ли определенные части элемента (например, заливка, обводка и т. д.) реагировать на события указателя. Этот параметр редко используется с обычными HTML-элементами.
Основные моменты использования
Вот несколько примеров использования свойства pointer-events.
-
Выбор элементов, которые вы хотите отключить
- Значение
noneполезно для временного отключения таких элементов, как кнопки или ссылки.
- Значение
-
Использование с перекрывающими элементами
- Если свойство
positionустановлено какabsoluteили элементы накладываются друг на друга с помощью свойстваz-index, установкаpointer-eventsв значениеnoneна верхний элемент позволяет направить события указателя на элемент ниже.
- Если свойство
Свойство 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}Свойство resize — это CSS-свойство, которое указывает направление, в котором пользователь может изменять размер элемента. Используя это свойство, вы можете разрешить изменение размера элементов по вертикали или горизонтали путем перетаскивания, либо полностью отключить изменение размера.
Типы значений
- Свойство
resizeопределяет направления, в которых элемент может быть изменён в размере. Вы можете указать следующие значения.
both
- Указание значения
bothпозволяет изменять размер элемента как по вертикали, так и по горизонтали.
horizontal
- Указание значения
horizontalпозволяет изменять размер элемента только по горизонтали (ширина).
vertical
- Указание значения
verticalпозволяет изменять размер элемента только по вертикали (высота).
none
- Указание значения
noneотключает возможность изменения размера элемента. Это значение по умолчанию.
inherit
- Указание значения
inheritзаставляет элемент унаследовать значение свойстваresizeот своего родителя.
Примечания
- Чтобы сделать элемент изменяемым по размеру, нужно задать свойство
overflowвместе со свойствомresize. Изменяемые по размеру элементы могут требовать полос прокрутки, и обычно устанавливается свойствоoverflow: auto. - Изменение размера обычно используется с блочными элементами, такими как
divиtextarea.
Вы можете следовать этой статье, используя Visual Studio Code на нашем YouTube-канале. Пожалуйста, также посмотрите наш YouTube-канал.