Propiedades de CSS relacionadas con la interfaz de usuario
Este artículo explica las propiedades de CSS relacionadas con la interfaz de usuario.
Puede aprender sobre las propiedades content
, cursor
, pointer-events
y resize
, incluyendo sus casos de uso y cómo escribirlas.
YouTube Video
HTML para vista previa
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>cursor</h3>
37 <section>
38 <h4>Cursor Examples</h4>
39 <header><h4>cursor: default</h4></header>
40 <section class="sample-view">
41 <div class="default-cursor">This is the default cursor.</div>
42 </section>
43 <header><h4>cursor: pointer</h4></header>
44 <section class="sample-view">
45 <div class="pointer-cursor">This is the pointer cursor (hand).</div>
46 </section>
47 <header><h4>cursor: text</h4></header>
48 <section class="sample-view">
49 <div class="text-cursor">This is the text cursor (I-bar).</div>
50 </section>
51 <header><h4>cursor: wait</h4></header>
52 <section class="sample-view">
53 <div class="wait-cursor">This is the wait cursor (hourglass).</div>
54 </section>
55 <header><h4>cursor: not-allowed</h4></header>
56 <section class="sample-view">
57 <div class="not-allowed-cursor">This is the not-allowed cursor (prohibited).</div>
58 </section>
59 </section>
60 </article>
61 <article>
62 <h3>pointer-events</h3>
63 <section>
64 <h4>Pointer Events Examples</h4>
65 <header><h4>pointer-events: auto</h4></header>
66 <section class="sample-view">
67 <div class="pointer-events-auto" onclick="document.getElementById('message').innerHTML = 'Auto: This box is clickable!'">
68 Auto (Clickable)
69 </div>
70 </section>
71 <header><h4>pointer-events: none</h4></header>
72 <section class="sample-view">
73 <div class="pointer-events-none" onclick="document.getElementById('message').innerHTML = 'None: This box is not clickable!'">
74 None (Not Clickable)
75 </div>
76 </section>
77 <div id="message">Message Box</div>
78 </section>
79 </article>
80 <article>
81 <h3>resize</h3>
82 <section>
83 <header><h4>resize: both</h4></header>
84 <section class="sample-view">
85 <textarea class="resizable-both">Resizes both horizontally and vertically</textarea>
86 </section>
87 <header><h4>resize: horizontal</h4></header>
88 <section class="sample-view">
89 <textarea class="resizable-horizontal">Resizes horizontally</textarea>
90 </section>
91 <header><h4>resize: vertical</h4></header>
92 <section class="sample-view">
93 <textarea class="resizable-vertical">Resizes vertically</textarea>
94 </section>
95 <header><h4>resize: none</h4></header>
96 <section class="sample-view">
97 <textarea class="non-resizable">Cannot resize</textarea>
98 </section>
99 </section>
100 </article>
101 </main>
102</body>
103</html>
Relacionado con la Interfaz de Usuario
Propiedad 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}
La propiedad content
se utiliza para agregar contenido a los pseudo-elementos, principalmente ::before
o ::after
. Esta propiedad se utiliza para definir texto, imágenes, contadores, etc., que no se muestran directamente dentro del elemento. Su función principal es permitir el control de contenido decorativo o información complementaria que no está escrita directamente en HTML a través de hojas de estilo.
En este ejemplo, "Nota: " se agrega antes del elemento y "(Fin)" se agrega después. Estos utilizan los pseudo-elementos ::before
y ::after
respectivamente.
Valores de la propiedad 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;
La propiedad content
puede tomar los siguientes valores:.
- Texto: especificar directamente encerrando la cadena entre
""
. Agrega texto. - Imagen: use la función
url()
para insertar imágenes. - Contador: use la función
counter()
para mostrar contadores. - Atributo: use la función
attr()
para mostrar los valores de los atributos de los elementos HTML. Por ejemplo, puede mostrar el atributotitle
. - none: especifica que no se mostrará ningún contenido. Este es el estado predeterminado.
Notas de uso
- La propiedad
content
se aplica solo a los pseudo-elementos, no a los elementos regulares. - Dado que no se agrega al DOM, no se puede manipular directamente con JavaScript.
- Podría afectar el diseño, por lo que se utiliza comúnmente para mostrar información decorativa o complementaria.
Ejemplo
1p::before {
2 content: url(icon.png);
3 margin-right: 5px;
4}
Este es un ejemplo de agregar un ícono antes de una etiqueta <p>
.
De esta manera, puede complementar visualmente el contenido mediante hojas de estilo.
Propiedad cursor
1.default-cursor {
2 cursor: default;
3}
4
5.pointer-cursor {
6 cursor: pointer;
7}
8
9.text-cursor {
10 cursor: text;
11}
12
13.wait-cursor {
14 cursor: wait;
15}
16
17.not-allowed-cursor {
18 cursor: not-allowed;
19}
La propiedad cursor
se utiliza para especificar el tipo de cursor que se mostrará cuando el puntero del mouse se coloque sobre un elemento. Puedes especificar varios estilos de cursor, y a menudo se aplica a elementos interactivos para mejorar la experiencia del usuario.
Principales Tipos de Cursor
Se pueden especificar los siguientes valores como tipos de cursor:.
default
- `default` es el cursor de flecha normal (el cursor predeterminado del navegador).
pointer
- `pointer` es un cursor con forma de mano que se muestra cuando se coloca sobre un enlace.
text
- `text` es un cursor en forma de barra (I-beam) que se muestra en áreas donde se puede seleccionar texto.
move
- `move` es un cursor en forma de cruz que se utiliza cuando un elemento puede ser arrastrado.
crosshair
- `crosshair` es un cursor en forma de retícula para una selección precisa.
not-allowed
- `not-allowed` es un cursor para regiones o acciones que no están permitidas.
help
- `help` es un cursor con un signo de interrogación que se muestra al colocarse sobre elementos que pueden proporcionar información de ayuda.
wait
- `wait` es un cursor en forma de reloj de arena o círculo que representa un estado de procesamiento.
progress
- `progress` es un cursor que representa una operación en curso. Sin embargo, indica que el usuario puede realizar otras operaciones.
grab
- `grab` es un cursor para agarrar elementos arrastrables.
grabbing
- `grabbing` es un cursor que indica que un elemento está siendo arrastrado.
resize
- `resize` es un cursor que se utiliza cuando una ventana o elemento se puede redimensionar. Hay diferentes tipos dependiendo de la dirección.
- **`n-resize`**: redimensionar hacia arriba.
- **`s-resize`**: redimensionar hacia abajo.
- **`e-resize`**: redimensionar hacia la derecha.
- **`w-resize`**: Cambiar el tamaño hacia la izquierda.
- **`ne-resize`**: Cambiar el tamaño hacia la esquina superior derecha.
- **`nw-resize`**: Cambiar el tamaño hacia la esquina superior izquierda.
- **`se-resize`**: Cambiar el tamaño hacia la esquina inferior derecha.
- **`sw-resize`**: Cambiar el tamaño hacia la esquina inferior izquierda.
Cursor personalizado
1element {
2 cursor: url('custom-cursor.png'), auto;
3}
También es posible especificar un cursor personalizado usando url()
.
- En este ejemplo,
custom-cursor.png
es el archivo de imagen para el cursor. Si esa imagen no está disponible, se muestra el cursor predeterminado del navegador conauto
.
Resumen
- La propiedad
cursor
especifica qué cursor debe mostrarse cuando el usuario está sobre un elemento. - Hay varios estilos de cursores disponibles según el uso, y también se pueden establecer cursores personalizados.
- Al seleccionar estilos de cursor apropiados según los elementos interactivos y las operaciones restringidas, se puede proporcionar una interfaz de usuario más amigable.
Propiedad 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}
La propiedad pointer-events
se utiliza para controlar cómo un elemento maneja eventos de dispositivos apuntadores como el ratón, el tacto y el lápiz óptico. Normalmente, cuando un usuario hace clic o pasa el cursor sobre un elemento, este recibe eventos de puntero, pero este comportamiento puede cambiar con esta propiedad.
- En la clase
pointer-events-auto
, la propiedadpointer-events
está configurada enauto
, permitiendo procesar normalmente los eventos de clic y hover. El elemento es clicable, por lo que se muestra un mensaje cuando se hace clic. - En la clase
pointer-events-auto
, la propiedadpointer-events
está configurada ennone
, por lo que el elemento no recibe eventos de puntero. Incluso si la propiedadcursor
está configurada enpointer
, el cursor del ratón no cambia, y otros elementos debajo se vuelven clicables.
Tipos de valor
- La propiedad
pointer-events
especifica si un elemento recibe eventos de puntero y cómo los recibe. Puedes especificar los siguientes valores.
auto
auto
es el valor predeterminado, donde el elemento recibe eventos de puntero normalmente.
none
- Cuando se especifica
none
, el elemento no recibe eventos de puntero. El elemento desactiva interacciones como clics y hover, pero otros elementos debajo pueden recibir eventos de puntero.
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;
- Estos valores se utilizan principalmente para elementos SVG. Cada valor controla si partes específicas de un elemento (como fill, stroke, etc.) responden a eventos de puntero. No se utiliza comúnmente con elementos HTML regulares.
Puntos clave para el uso
Aquí hay algunos ejemplos de cómo usar la propiedad pointer-events
.
-
Seleccionando elementos que deseas deshabilitar
- El valor
none
es útil para deshabilitar temporalmente elementos como botones o enlaces.
- El valor
-
Uso con elementos superpuestos
- Cuando la propiedad
position
se establece enabsolute
o los elementos están en capas usando la propiedadz-index
, configurarpointer-events
ennone
en el elemento superior permite que los eventos de puntero se envíen al elemento inferior.
- Cuando la propiedad
Propiedad 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}
La propiedad resize
es una propiedad de CSS que especifica en qué dirección un usuario puede redimensionar un elemento. Usando esta propiedad, puedes permitir que los elementos se redimensionen vertical u horizontalmente al arrastrar, o deshabilitar el redimensionamiento por completo.
En este ejemplo, la dirección en la que se puede redimensionar un área de texto se especifica utilizando la propiedad resize
.
- Con
resize: both;
, un elemento puede redimensionarse tanto horizontal como verticalmente. - Con
resize: horizontal;
, un elemento solo puede redimensionarse horizontalmente. - Con
resize: vertical;
, un elemento solo puede redimensionarse verticalmente. - Con
resize: none;
, un elemento no puede redimensionarse.
Tipos de valor
- A la propiedad
resize
se le asigna un valor que especifica la dirección en la que un elemento puede redimensionarse. Puedes especificar los siguientes valores.
none
- Especificar
none
deshabilita el redimensionamiento del elemento. Este es el valor predeterminado.
both
- Especificar
both
permite que el elemento se redimensione en ambas direcciones, vertical y horizontal.
horizontal
- Especificar
horizontal
permite que el elemento se redimensione solo en la dirección horizontal (ancho).
vertical
- Especificar
vertical
permite que el elemento se redimensione solo en la dirección vertical (alto).
inherit
- Especificar
inherit
hace que el elemento herede el valor de la propiedadresize
de su elemento padre.
Notas
- Para hacer que un elemento sea redimensionable, necesitas configurar la propiedad
overflow
junto con la propiedadresize
. Los elementos redimensionables pueden requerir barras de desplazamiento, y comúnmente se usaoverflow: auto
. - El redimensionamiento generalmente se utiliza con elementos de bloque como
div
ytextarea
.
Puedes seguir el artículo anterior utilizando Visual Studio Code en nuestro canal de YouTube. Por favor, también revisa nuestro canal de YouTube.