CSSNotesForProfessionals (Español)
CSSNotesForProfessionals (Español)
CSS
Contenido
Sobre .................................................... .................................................... .................................................... ............................. 1
Sección 4.7: Seleccione un elemento usando su ID sin la alta especificidad del selector de ID Sección 4.8: El ............................................. 17
....................................................
selector :last-of-type Sección 4.9: CSS3 :ejemplo de selector dentro del .................................................... .................. 17
Sección 4.13: Cómo aplicar estilo a una entrada de rango ............................... .................................................... ....................... 21
Sección 4.14: El ejemplo del selector de pseudo-clase :only-child .................................. ............................................. 21
Capítulo 5: Antecedentes .............................................. .................................................... ............................................. 22
Sección 6.9: Centrado en relación con otro elemento Sección 6.10:.................................................... .......................................................... 44
Técnica del elemento fantasma (truco de Michaÿ Czernow) ................... .................................................... ...... 45
Sección 6.11: Centrado vertical y horizontalmente sin preocuparse por la altura o el ancho Sección 6.12: Alineación ............................... 46
vertical de una imagen dentro de div Sección 6.13: Centrado con ....................................................
tamaño fijo Sección 6.14: Alineación ....................................................
vertical de . 47
....................................................
elementos dinámicos de altura Sección 6.15: Centrado horizontal y vertical usando diseño ....................................................
de ................... 47
Sección 12.5: Contexto de formato de bloque creado con desbordamiento .................................................... .......................... 74
pantalla Sección 13.7: Uso en la etiqueta de enlace ............... .................................................... .................................................... ..... 80
Sección 13.8: consultas de medios e IE8 .................................................... .................................................... ....................... 80
Sección 14.1: Hacer flotar una imagen dentro del .................................................... .................................................... ............... 81
floats Sección 14.6: Diseño simple de dos columnas de ancho fijo ........... .................................................... ..................... 86
Sección 14.7: Diseño simple de tres columnas de ancho fijo .................................. .................................................. 87
Sección 14.8: Diseño perezoso/codicioso de dos columnas .................................. .................................................... ............ 88
Sección 16.1: Centrado dinámico vertical y horizontal (alinear elementos, justificar contenido) .................................. ..... 96
Sección 16.2: Pie de página adhesivo de altura variable .................................................... .................................................... ....... 102
Sección 16.3: Ajuste óptimo de elementos a su contenedor Sección .................................................... ........................................ 103
.................................................... .................................................... ....
16.4: Diseño del Santo Grial con Flexbox Sección 16.5: Botones 104
perfectamente alineados dentro de tarjetas con flexbox Sección 16.6: Misma altura .................................................... ...................... 105
Sección 20.1: Creación de elementos escalables usando rems y ems .................................................... ......................... 127
Sección 20.2: Tamaño de fuente con rem .................................................... .................................................... .......................... 128
Sección 20.3: vmin y vmax .................................................... .................................................... ............................... 129
Sección 20.4: vh y vw .................................................... .................................................... ........................................ 129
....................................................
usando div Capítulo 24: Cuadrícula Sección 24.1: Ejemplo .................................................... .................................................... .. 141
Sección 27.1: Animaciones con fotogramas clave ........................................... .................................................... .................... 148
Sección 27.2: Animaciones con la propiedad de transición ........................................... ................................................ 149
Sección 27.4: Aumento del rendimiento de la animación utilizando el atributo `will-change` .......................................... 151
Sección 29.1: Puntero de compás o forma de aguja usando transformaciones 3D Sección .................................................... .............. 156
29.2: Efecto de texto 3D con sombra .................................................... .................................................... ............ 157
Sección 30.2: Sombra paralela (utilice box-shadow en su lugar si es posible) .................................. .................................... 161
Sección 30.3: Rotación de matiz .................................................... .................................................... ...................................... 162
32.1: sombra paralela solo desde abajo usando un pseudo-elemento .................................. .......................................... 166
Sección 32.2: sombra paralela .................................................... .................................................... .................................... 167
Sección 33.1: Forma exterior con forma básica – círculo() .................................. .................................................... 170
Sección 33.2: Margen de forma ............................................... .................................................... .......................................... 171
Sección 35.1: Aplicación de estilo de números romanos a la salida del contador .................................. ........................ 175
Sección 35.2: Numeración de cada elemento mediante el contador .................................................... .......................................... 175
CSS Sección 35.3: Implementación de la numeración multinivel mediante contadores CSS .................................................... ........... 176
Sección 39.1: Ejemplo simple (recuento de columnas) .................................. .................................................... ............. 193
Sección 39.2: Ancho de columna .................................................... .................................................... .................................. 193
Capítulo 46: Modelo de objetos CSS (CSSOM) ....................................... .................................................... ............ 207
Sección 46.1: Adición de una regla de imagen de fondo a través de .................................................... ......................... 207
CSSOM Sección 46.2: Introducción
.................................................... .................................................... ..................................... 207
Sección 49.1: Uso de la propiedad de desbordamiento con un valor diferente a visible .................................................... ...... 212
Sección 50.1: Centrado con pantalla: tabla .................................................... .................................................... .......... 213
Sección 50.2: Centrado con Flexbox Sección.................................................... .................................................... .................. 213
50.3: Centrado con Transform Sección 50.4: .................................................... .................................................... ............. 214
Centrado de texto con altura de línea ........... .................................................... ............................. 214
Sección 50.5: Centrado con Posición: absoluta Sección .................................................... .................................................... . 214
50.6: Centrado con pseudo elemento .................................................... .................................................... .... 215
Capítulo 54: Normalización de los estilos del navegador .................................. .................................................... ....... 223
Sección 54.1: normalize.css .................................................... .................................................... .................................... 223
Sección 54.2: Enfoques y ejemplos ............................................... .................................................... .......... 223
Capítulo 55: Hacks de Internet Explorer Sección .................................................... .................................................... .......... 226
55.1: Adición de soporte de bloque en línea a IE6 e IE7 Sección .................................................... ..................................... 226
55.2: Modo de alto contraste en Internet Explorer 10 y superior ........... .......................................... 226
Sección 55.3: Internet Explorer 6 e Internet Explorer 7 únicamente .................................. .......................................... 227
Machine Translated by Google
Sección 56.1: Use la transformación y la opacidad para evitar el diseño del disparador .................................. ............................... 228
Créditos .................................................... .................................................... .................................................... ...................... 231
Sobre
Este libro de Notas de CSS para profesionales está compilado a partir de la documentación
de desbordamiento de pila , el contenido está escrito por la hermosa gente de Stack Overflow.
El contenido del texto se publica bajo Creative Commons BY-SA, vea los créditos al final de este libro
que contribuyeron a los diversos capítulos. Las imágenes pueden ser propiedad de sus respectivos
propietarios a menos que se especifique lo contrario
Este es un libro gratuito no oficial creado con fines educativos y no está afiliado a grupos o
empresas oficiales de CSS ni a Stack Overflow. Todas las marcas comerciales y marcas
comerciales registradas son propiedad de sus respectivos
dueños de la empresa
No se garantiza que la información presentada en este libro sea correcta ni precisa, utilícela bajo
su propio riesgo.
2 1998-05-12
3 2015-10-13
El atributo rel de la etiqueta <link> debe establecerse en "hoja de estilo" y el atributo href en la ruta relativa o absoluta a la hoja de estilo. Si bien el
uso de rutas URL relativas generalmente se considera una buena práctica, también se pueden usar rutas absolutas. En HTML5, el atributo de tipo se
puede omitir.
Se recomienda colocar la etiqueta <link> en la etiqueta <head> del archivo HTML para que los estilos se carguen antes que los elementos a los que
aplican estilo. De lo contrario, los usuarios verán un destello de contenido sin estilo.
Ejemplo
hola-mundo.html
<!DOCTYPE html>
<html> <head>
<meta
charset="utf-8" /> <link rel="hoja
de estilo" type="text/css" href="style.css"> </head> <cuerpo > <h1>¡Hola
mundo!</h1>
<p>Yo ÿ CSS</
p> </body> </html>
estilo.css
h1
{ color: verde;
decoración de texto: subrayado;
}
pag {
tamaño de fuente:
25px; familia de fuentes: 'Trebuchet MS', sans-serif;
}
Asegúrese de incluir la ruta correcta a su archivo CSS en el href. Si el archivo CSS está en la misma carpeta que su archivo HTML, no se requiere una
ruta (como en el ejemplo anterior), pero si está guardado en una carpeta, especifíquelo así href="nombrecarpeta/estilo.css".
Las hojas de estilo externas se consideran la mejor manera de manejar su CSS. Hay una razón muy simple para esto: cuando administra un sitio
de, digamos, 100 páginas, todas controladas por una sola hoja de estilo, y desea cambiar su enlace
colores de azul a verde, es mucho más fácil hacer el cambio en su archivo CSS y dejar que los cambios "caigan en cascada" a lo largo de
las 100 páginas que ir a 100 páginas separadas y hacer el mismo cambio 100 veces. Nuevamente, si desea cambiar completamente el aspecto de
su sitio web, solo necesita actualizar este archivo.
Las reglas de CSS se aplican con algunas reglas básicas y el orden sí importa. Por ejemplo, si tiene un archivo main.css con
algo de código en él:
Todos sus párrafos con la clase 'verde' se escribirán en verde claro, pero puede anular esto con otro archivo .css simplemente incluyéndolo después
de main.css. Puede tener override.css con el siguiente código después de main.css, por ejemplo:
Ahora todos sus párrafos con la clase 'verde' se escribirán en verde más oscuro en lugar de verde claro.
Cuando alguien visita su sitio web por primera vez, su navegador descarga el HTML de la página actual más el archivo CSS vinculado. Luego, cuando
navegan a otra página, su navegador solo necesita descargar el HTML de esa página; el archivo CSS se almacena en caché, por lo que no es necesario
volver a descargarlo. Dado que los navegadores almacenan en caché la hoja de estilo externa, sus páginas se cargan más rápido.
<cabeza>
<estilo> h1 { color:
verde; decoración de texto: subrayado;
}
pags {
tamaño de fuente:
25px; familia de fuentes: 'Trebuchet MS', sans-serif;
} </style>
</head>
<body>
<h1>¡Hola mundo!</h1>
<p>Yo ÿ CSS</
p> </body>
<estilo>
@import url('/css/estilos.css'); </estilo>
La siguiente línea importa un archivo CSS llamado adicional-styles.css en el directorio raíz al archivo CSS en el que se encuentra.
aparece:
@import '/estilos-adicionales.css';
También es posible importar CSS externo. Un caso de uso común son los archivos de fuentes.
@import 'https://fonts.googleapis.com/css?family=Lato';
Un segundo argumento opcional para la regla @import es una lista de consultas de medios:
Los estilos en línea anulan cualquier CSS en una etiqueta <style> o en una hoja de estilo externa. Si bien esto puede ser útil en
algunas circunstancias, este hecho a menudo reduce la capacidad de mantenimiento de un proyecto.
Los estilos del siguiente ejemplo se aplican directamente a los elementos a los que están adjuntos.
Los estilos en línea son generalmente la forma más segura de garantizar la compatibilidad de representación entre varios clientes de correo
electrónico, programas y dispositivos, pero pueden llevar mucho tiempo escribirlos y un poco difíciles de administrar.
Es posible agregar, eliminar o cambiar los valores de propiedad CSS con JavaScript a través de la propiedad de estilo de un elemento .
Tenga en cuenta que las propiedades de estilo se nombran en minúsculas. En el ejemplo, puede ver que la familia de fuentes de la propiedad css se convierte
en fontFamily en javascript.
Como alternativa a trabajar directamente en los elementos, puede crear un elemento <style> o <link> en JavaScript y agregarlo al <body> o <head> del
documento HTML.
jQuery
$('#elemento').css('margen', '5px');
$('#elemento').css({ margen:
"5px", relleno: "10px",
color: "negro"
});
jQuery incluye dos formas de cambiar las reglas css que tienen guiones (es decir , tamaño de fuente). Puede ponerlos entre comillas o en mayúsculas y
});
Ver también
list-style-type define la forma o el tipo de viñeta utilizada para cada elemento de la lista.
desct
circulo
decimal
cuadrado
bajo-romano
romano superior
ninguna
Para usar viñetas cuadradas para cada elemento de la lista, por ejemplo, usaría el siguiente par propiedad-valor:
li
{ tipo de estilo de lista: cuadrado;
}
La propiedad list-style-image determina si el ícono del elemento de la lista está configurado con una imagen y acepta un valor
de none o una URL que apunta a una imagen.
li
{ imagen-estilo-lista: url(images/ bullet.png);
}
La propiedad list-style-position define dónde colocar el marcador de elemento de lista y acepta uno de dos valores:
"dentro o fuera".
li
{ posición de estilo de lista: dentro;
}
Entonces, el color azul se aplica a todos los elementos <div> y a todos los elementos <p> . Sin la coma, solo los elementos <p> que son hijos de un <div> serían
rojos.
<p>
elementos de la clase azul
Una regla CSS consta de un selector (por ejemplo, h1) y un bloque de declaración ({}).
h1 {}
Capítulo 3: Comentarios
Capítulo 4: Selectores
Los selectores de CSS identifican elementos HTML específicos como objetivos para estilos CSS. Este tema cubre cómo los selectores de CSS apuntan
elementos HTML. Los selectores utilizan una amplia gama de más de 50 métodos de selección que ofrece el lenguaje CSS, incluidos
elementos, clases, ID, pseudo-elementos y pseudo-clases, y patrones.
:lang(es) Elemento que coincide con la declaración :lang, por ejemplo <span lang="en">
div > pag selector de niños
Nota: El valor de un ID debe ser único en una página web. Es una violación del estándar HTML. usar el
valor de un ID más de una vez en el mismo árbol de documentos.
Puede encontrar una lista completa de selectores en la especificación CSS Selectors Level 3.
Los selectores de atributos se pueden usar con varios tipos de operadores que cambian los criterios de selección en consecuencia. Ellos
seleccionar un elemento usando la presencia de un atributo o valor de atributo dado.
[atributo^='val'] <div atributo="val1 val2"> Donde el valor de attr comienza con val 3
[attr$='val'] <div attr="sth aval"> Donde el valor de attr termina con val 3
Notas:
1. El valor del atributo puede estar entre comillas simples o dobles. Sin comillas en absoluto también puede
funciona, pero no es válido de acuerdo con el estándar CSS y se desaconseja.
2. No existe una única especificación CSS4 integrada, porque se divide en módulos separados. Sin embargo, hay
Módulos de "nivel 4". Ver soporte del navegador.
Detalles
[atributo]
[atributo="valor"]
div[datos-color="rojo"] {
color: rojo;
}
[atributo*="valor"]
Selecciona elementos con el atributo y el valor dados donde el atributo dado contiene el valor dado en cualquier lugar (como una subcadena).
[clase*="foo"] { color:
rojo;
}
[atributo~="valor"]
Selecciona elementos con el atributo y el valor dados donde el valor dado aparece en una lista separada por espacios en blanco.
[atributo^="valor"]
Selecciona elementos con el atributo y el valor dados donde el atributo dado comienza con el valor.
[clase^="foo-"] { color:
rojo;
}
[atributo$="valor"]
Selecciona elementos con el atributo y el valor dados donde el atributo dado termina con el valor dado.
[clase$="archivo"] { color:
rojo;
}
[atributo|="valor"]
Selecciona elementos con un atributo y valor dados donde el valor del atributo es exactamente el valor dado o es exactamente el valor
dado seguido de - (U+002D)
[lang|="ES"] { color:
rojo;
}
[atributo="valor" i]
Selecciona elementos con un atributo y valor determinados donde el valor del atributo se puede representar como Valor, VALOR, VALOR o cualquier
otra posibilidad que no distinga entre mayúsculas y minúsculas.
[lang="ES" i] { color:
rojo;
}
*[tipo=casilla] // 0-1-0
Tenga en cuenta que esto significa que se puede usar un selector de atributo para seleccionar un elemento por su ID con un nivel de especificidad
más bajo que si se seleccionara con un selector de ID: [id="my-ID"] tiene como objetivo el mismo elemento que #my- ID pero con menor
especificidad.
Selector general de hermanos (todos los < span>s que son hermanos después de <a>) a +
span Selector de hermanos adyacentes (todos los <span>s que están inmediatamente después de <a>)
Nota: Los selectores relacionados se dirigen a elementos que vienen después de ellos en el documento de origen. CSS, por su
naturaleza (en cascada), no puede apuntar a elementos anteriores o principales . Sin embargo, al usar la propiedad de orden flexible ,
se puede simular un selector de hermanos anterior en medios visuales.
Un combinador descendiente, representado por al menos un carácter de espacio (), selecciona elementos que son descendientes del elemento
definido. Este combinador selecciona todos los descendientes del elemento (desde los elementos secundarios hacia abajo).
div p
{ color: rojo;
}
<div>
<p>Mi texto es rojo</p>
<section> <p>Mi texto es
rojo</p> </section> </div>
En el ejemplo anterior, se seleccionan los dos primeros elementos <p> ya que ambos son descendientes de <div>.
El combinador secundario (>) se utiliza para seleccionar elementos que son secundarios o descendientes directos del elemento
especificado.
div > p
{ color:rojo;
}
<div>
<p>Mi texto es rojo</p>
<section>
<p>Mi texto no es rojo</p> </
section> </div>
El CSS anterior selecciona solo el primer elemento <p> , ya que es el único párrafo que desciende directamente de un <div>.
El segundo elemento <p> no está seleccionado porque no es un elemento secundario directo del <div>.
El combinador hermano (+) adyacente selecciona un elemento hermano que sigue inmediatamente a un elemento especificado.
p+p
{ color:rojo;
}
El ejemplo anterior selecciona solo aquellos elementos <p> que están directamente precedidos por otro elemento <p> .
El combinador general de hermanos (~) selecciona todos los hermanos que siguen al elemento especificado.
p~p
{ color: rojo;
}
El ejemplo anterior selecciona todos los elementos <p> que están precedidos por otro elemento <p> , estén o no inmediatamente adyacentes.
que no puede ser expresado por otros selectores o combinadores. Esta información se puede asociar a un determinado estado
(estado y dinámico pseudo-clases), a ubicaciones (estructurales y objetivo pseudo-clases), a las negaciones de las primeras
(negación pseudo-clase) o a idiomas (lang pseudoclase). Los ejemplos incluyen si un enlace ha sido o no
seguido (:visited), el mouse está sobre un elemento (:hover), una casilla de verificación está marcada (:checked), etc.
Sintaxis
selector:pseudo-clase {
propiedad: VALOR;
}
Lista de pseudo-clases:
Nombre Descripción
:activo Se aplica a cualquier elemento activado (es decir, en el que se haga clic) por parte del usuario.
Se aplica a los elementos de radio, casilla de verificación u opción que están marcados
:comprobado
o cambia a un estado "encendido".
:defecto Representa cualquier elemento de la interfaz de usuario que sea el predeterminado entre un grupo de
elementos similares.
:desactivado Se aplica a cualquier elemento de la interfaz de usuario que se encuentre en un estado deshabilitado.
:primer hijo Representa cualquier elemento que sea el primer elemento secundario de su principal.
Se aplica a cualquier elemento que tenga el foco del usuario. Esto puede ser dado por el
:enfoque
teclado del usuario, eventos del mouse u otras formas de entrada.
:foco-dentro Se puede usar para resaltar una sección completa cuando se enfoca un elemento dentro de ella. Concuerda
cualquier elemento con el que coincida la pseudoclase :focus o que tenga un descendiente enfocado.
Se aplica a cualquier elemento que se muestre en modo de pantalla completa. Selecciona toda la pila.
:pantalla completa
de elementos y no solo el elemento de nivel superior.
Se aplica a cualquier elemento sobre el que se cierne el dispositivo señalador del usuario, pero
:flotar
no esta activado.
Aplica elementos de interfaz de usuario de radio o casilla de verificación que no están marcados ni
:indeterminado sin control, pero se encuentran en un estado indeterminado. Esto puede deberse a un
atributo del elemento o manipulación DOM.
:último niño Representa cualquier elemento que sea el último elemento secundario de su principal.
Usado junto con la regla @page , esto selecciona todas las páginas restantes
:izquierda
en un documento impreso.
:Enlace Se aplica a cualquier enlace que no haya sido visitado por el usuario.
Se aplica a todos los elementos que no coinciden con el valor pasado a (:not(p)
o :not(.class-name) por ejemplo. Debe tener un valor para ser válido y solo puede contener
:no()
un selector. Sin embargo, puede encadenar múltiples : no selectores juntos.
La pseudoclase :visited ya no se puede usar para la mayoría de los estilos en muchos navegadores modernos porque es un
agujero de seguridad. Ver este enlace para referencia.
"La pseudoclase de CSS :nth-child(an+b) coincide con un elemento que tiene hermanos an+b-1 antes que él en el árbol del
documento, para un valor positivo o cero dado para n" - MDN :nth-child
:nésimo ÿ
:nth-child(3n+1) ÿ ÿ ÿ ÿ
:último niño ÿ
:nésimo-último-hijo(3) ÿ
También puede combinar nombres de clase para elementos de destino más específicamente. Construyamos sobre el ejemplo anterior
para mostrar una selección de clases más complicada.
CSS
.importante
{ color: naranja;
} .advertencia
{ color: azul;
} .advertencia.importante
{ color: rojo;
}
HTML
En este ejemplo, todos los elementos con la clase .warning tendrán un texto de color azul, los elementos con la clase .important tendrán un
texto de color naranja y todos los elementos que tengan los nombres de clase .important y .warning tendrán un texto rojo. color.
Tenga en cuenta que dentro del CSS, la declaración .warning.important no tenía espacios entre los dos nombres de clase. Esto significa
que solo encontrará elementos que contengan nombres de clase de advertencia e importantes en su atributo de clase . Esos nombres de clase
pueden estar en cualquier orden en el elemento.
Si se incluyera un espacio entre las dos clases en la declaración CSS, solo seleccionaría elementos que tienen elementos principales con
nombres de clase .warning y elementos secundarios con nombres de clase .important .
HTML:
<div id="elemento">...</div>
CSS
<div class="contenedor">
<p>Primer párrafo</p> <p>Segundo
párrafo</p> <p>Último párrafo</p>
<h1>Título 1</h1> <h2>Primer
encabezado 2</h2> <h2>Último
encabezado 2</h2> </div>
jsviolín
} </estilo>
La pseudoclase CSS :in-range coincide cuando un elemento tiene su atributo de valor dentro de las limitaciones de rango especificadas
para este elemento. Permite que la página brinde una retroalimentación de que el valor definido actualmente usando el elemento está dentro
de los límites del rango.[1]
El siguiente selector coincide con todos los elementos <input> en un documento HTML que no están deshabilitados y no tienen la clase .example:
HTML:
<formulario>
CSS:
input:not([disabled]):not(.example){ background-color:
#ccc;
}
La pseudoclase :not() también admitirá selectores separados por comas en el nivel 4 de selectores:
CSS:
HTML:
</div>
CSS:
div
{ altura: 80px;
}
entrada{ margen:30px;
} div:focus-within
{ background-color: #1565C0;
}
Al comienzo de su documento, agregue tantos valores booleanos como desee con una identificación única y la oculta
conjunto de atributos:
<!-- aquí comienza el contenido real, por ejemplo: --> <div id="container">
Puede alternar el valor booleano agregando una etiqueta con el conjunto de atributos for :
El selector normal (como .color-red) especifica las propiedades predeterminadas. Se pueden anular siguiendo los selectores verdadero / falso :
/ * verdadero: */
<casilla de verificación>: marcado ~ [hermano de la casilla de verificación y principal del objetivo] <objetivo>
/ * falso: */ <casilla
de verificación>: no (: marcada) ~ [hermano de la casilla de verificación y padre del objetivo] <objetivo>
Tenga en cuenta que <casilla de verificación>, [hermano...] y <objetivo> deben reemplazarse por los selectores adecuados. [hermano...]
puede ser un selector específico, (a menudo si es perezoso) simplemente * o nada si el objetivo ya es un hermano de la casilla de verificación.
#darkThemeUsed:marcado ~ #container,
#darkThemeUsed:marcado ~ #footer { background:
#333;
}
En acción
ver este violín para una implementación de estos valores booleanos globales.
#ejemploID
{ ancho: 20px;
}
HTML
CSS
Efecto Pseudoselector
entrada[tipo=rango]::-webkit-slider-thumb, entrada[tipo=rango]::-moz-rango-thumb,
Pulgar
entrada[tipo=rango]::-ms-thumb entrada[tipo=rango]:: -webkit-slider-runnable-track, input[type=range]::-
moz-range-track, input[type=range]::-ms-track input[type=range]:focus
Pista
Enfocado
Parte inferior de input[type=range]::-moz-range-progress, input[type=range]::-ms-fill-lower (no es posible la pista en los navegadores WebKit
actualmente - se necesita JS)
La pseudoclase CSS :only-child representa cualquier elemento que sea el único hijo de su padre.
HTML:
<div>
<p>Este párrafo es el único hijo del div, tendrá el color azul</p>
</div>
<div>
<p>Este párrafo es uno de los dos hijos del div</p> <p>Este párrafo es uno
de los dos hijos de su padre</p>
</div>
CSS:
p: hijo único
{ color: azul;
}
El ejemplo anterior selecciona el elemento <p> que es el hijo único de su padre, en este caso un <div>.
Capítulo 5: Fondos
Con CSS puede establecer colores, degradados e imágenes como fondo de un elemento.
Es posible especificar varias combinaciones de imágenes, colores y degradados, y ajustar el tamaño, el posicionamiento y la repetición (entre otros) de estos.
transparente, especifica que el color de fondo debe ser transparente. Esto es predeterminado.
nombres de colores
CSS
div
{ color de fondo: rojo; /* rojo */
}
HTML
El ejemplo utilizado anteriormente es una de las varias formas en que CSS tiene que representar un solo color.
El código hexadecimal se utiliza para indicar los componentes RGB de un color en notación hexadecimal de base 16. #ff0000, por ejemplo, es rojo brillante, donde el
componente rojo del color es 256 bits (ff) y las partes verde y azul correspondientes del color son 0 (00).
Si ambos valores en cada uno de los tres pares RGB (R, G y B) son iguales, entonces el código de color se puede acortar a tres caracteres (el primer dígito de cada
cuerpo
{ color de fondo: #de1205; /* rojo */
}
.principal {
RGB / RGBa
RGB significa rojo, verde y azul, y requiere tres valores separados entre 0 y 255, entre paréntesis, que se correspondan con los
valores de color decimales para rojo, verde y azul, respectivamente.
RGBa le permite agregar un parámetro alfa adicional entre 0.0 y 1.0 para definir la opacidad.
encabezado
{ color de fondo: rgb (0, 0, 0); /* negro */
}
pie de
página { color de fondo: rgba(0, 0, 0, 0.5); /* negro con 50% de opacidad */
}
HSL / HSLa
Otra forma de declarar un color es usar HSL o HSLa y es similar a RGB y RGBa.
HSLa le permite agregar un parámetro alfa adicional entre 0.0 y 1.0 para definir la opacidad.
li a
{ color de fondo: hsl (120, 100%, 50%); /* verde */
}
#p1
{ color de fondo: hsla(120, 100%, 50%, .3); /* verde con 30% de opacidad */
}
cuerpo
{ fondo: rojo; imagen
de fondo: url (imagen parcialmente transparente.png);
}
cuerpo
{ color de fondo: rojo; imagen
de fondo: url (imagen parcialmente transparente.png);
}
cuerpo
{ imagen de fondo: url (imagen parcialmente transparente.png); color de
fondo: rojo;
cuerpo
{ fondo: URL roja (imagen parcialmente transparente.png);
}
Todos conducirán a que se muestre el color rojo debajo de la imagen, donde las partes de la imagen son transparentes, o la imagen no se muestra
(tal vez como resultado de la repetición del fondo).
cuerpo
{ imagen de fondo: url (imagen parcialmente transparente.png); fondo: rojo;
Para obtener más información sobre la propiedad de fondo , consulte Taquigrafía de fondo
Hay dos tipos de funciones de gradiente, lineales y radiales. Cada tipo tiene una variante no repetitiva y otra repetitiva.
variante:
gradiente -lineal()
gradiente-lineal-repetido() gradiente-
radial() gradiente -radial-repetido()
gradiente lineal()
Valor Significado
Podría ser un argumento como arriba , abajo, a la derecha oa la izquierda; o un ángulo como 0 grados, el
<dirección> grados, graduado,
ángulo comienza
rad, 90 grados...
desde arriba
. o girar.
y gira
Si se
enomite,
el sentido
el degradado
de las agujas
fluyedel
dereloj.
arribaSe
hacia
puede
abajo.
especificar
Lista deen
colores, opcionalmente seguida cada uno por un porcentaje o longitud . para mostrarlo en. Para el ejemplo de
<color-stop-list> , amarillo 10%, rgba(0,0,0,.5) 40px, #fff 100%...
Por ejemplo, esto crea un degradado lineal que comienza desde la derecha y cambia de rojo a azul.
.linear-gradiente {
fondo: degradado lineal (a la izquierda, rojo, azul); /* también puedes usar 270 grados */
}
Puede crear un degradado diagonal declarando una posición inicial tanto horizontal como vertical.
.diagonal-lineal-degradado {
fondo: degradado lineal ( arriba a la izquierda, rojo, amarillo 10%);
Es posible especificar cualquier cantidad de paradas de color en un degradado separándolas con comas. Los siguientes ejemplos crearán un
degradado con 8 paradas de color
.linear-gradient-rainbow {
fondo: degradado lineal (a la izquierda, rojo, naranja, amarillo, verde, azul, índigo, violeta)
}
gradiente radial()
.radial-gradient-simple { fondo: radial-
gradient(rojo, azul);
}
.gradiente radial {
fondo: degradado radial (círculo en la esquina más alejada en la parte superior izquierda, rojo, azul);
}
Valor Significado
circulo Forma de gradiente. Los valores son círculo o elipse, el valor predeterminado es elipse.
Palabras
lado de la esquina más alejada, la clave quemás
esquina describen qué
cercana, la tan grande
esquina debe
más ser la forma final. Los valores son el lado más cercano, el más lejano, el
lejana
arriba a la izquierda Establece la posición del centro del degradado, de la misma forma que la posición del fondo.
Gradientes repetitivos
Las funciones de degradado repetido toman los mismos argumentos que los ejemplos anteriores, pero el degradado se coloca en mosaico
sobre el fondo del elemento.
.bullseye
{ fondo: gradiente radial repetido (rojo, rojo 10%, blanco 10%, blanco 20%);
} .advertencia
{ fondo: repetición-lineal-gradiente (-45 grados, amarillo, amarillo 10%, negro 10%, negro 20% );
}
Valor Significado
Unidad angular. El ángulo comienza desde arriba y gira en el sentido de las agujas del reloj. Se puede especificar en grados, graduado, Radiante, o
-45 grados
giro.
a la izquierda Dirección del degradado, el valor predeterminado es hacia abajo. Sintaxis: a [eje y (arriba O abajo)] [eje x (izquierda O
derecha)], es decir , arriba a la derecha
amarillo 10% Color, opcionalmente seguido de un porcentaje o longitud para mostrarlo. Repetido dos o más veces.
Tenga en cuenta que se pueden usar códigos de color HEX, RGB, RGBa, HSL y HSLa en lugar de nombres de colores. Los nombres de los colores se
usaron con fines ilustrativos. También tenga en cuenta que la sintaxis de gradiente radial es mucho más compleja que la de gradiente lineal, y aquí se
muestra una versión simplificada. Para obtener una explicación completa y especificaciones, consulte los documentos de MDN .
.myClass
{ imagen de fondo: url('/ruta/a/imagen.jpg');
}
Para usar varias imágenes como imagen de fondo, defina url() separadas por comas
.miClase {
imagen de fondo: url('/ruta/a/imagen.jpg'),
url('/ruta/a/imagen2.jpg');
}
Las imágenes se apilarán según su orden con la primera imagen declarada encima de las demás y así sucesivamente.
Valor Resultado
url('/ruta/a/imagen.jpg') Especifique la(s) ruta(s) de la imagen de fondo o un recurso de imagen especificado con URI de datos
esquema (se pueden omitir los apóstrofes), separe los múltiplos con comas
ninguna
Sin imagen de fondo
inicial Valor por defecto
heredar
Heredar el valor de los padres
fondo-origen Cómo se coloca el fondo (se ignora cuando se activa el archivo adjunto de fondo). 3+
fijado)
clip de fondo Cómo se pinta el fondo en relación con el cuadro de contenido, el cuadro de borde o el 3+
caja de relleno
Sintaxis
Ejemplos
fondo: rojo;
Establece una repetición de fondo en no repetición, un origen de fondo en el centro y una imagen de fondo en una imagen.
En este ejemplo, el color de fondo del elemento se establecería en verde con pattern.png, si está disponible, superpuesto al color,
repitiendo tantas veces como sea necesario para llenar el elemento. Si pattern.png incluye alguna transparencia, el color verde será
visible detrás.
En este ejemplo, tenemos un fondo negro con una imagen 'imagen.png' en la parte superior, la imagen no se repite en ninguno de los ejes y
se coloca en la esquina superior izquierda. El / después de la posición es para poder incluir el tamaño de la imagen de fondo que en este caso
se establece en 600 px de ancho y automático para la altura. Este ejemplo podría funcionar bien con una imagen característica que puede
desvanecerse en un color sólido.
NOTA: El uso de la propiedad de fondo abreviada restablece todos los valores de propiedad de fondo establecidos previamente,
incluso si no se proporciona un valor. Si solo desea modificar un valor de propiedad de fondo establecido previamente, use una
propiedad de mano en su lugar.
El tamaño de fondo La propiedad permite controlar la escala de la imagen de fondo. Toma hasta dos valores, que determinan la escala/
tamaño de la imagen resultante en dirección vertical y horizontal. Si falta la propiedad, se considera automática tanto en ancho como en alto.
auto mantendrá la relación de aspecto de la imagen, si se puede determinar. La altura es opcional y se puede considerar automática.
Por lo tanto, en una imagen de 256 px × 256 px, todas las siguientes configuraciones de tamaño de fondo generarían una imagen con una
altura y un ancho de 50 px:
Entonces, si comenzamos con la siguiente imagen (que tiene el tamaño mencionado de 256 px × 256 px),
También se pueden usar valores porcentuales para escalar la imagen con respecto al elemento. El siguiente ejemplo produciría una imagen dibujada de
200 px × 133 px:
#withbackground
{ background-image: url(to/ some/ background.png);
ancho: 200px;
altura: 200px;
relleno: 0;
margen: 0;
}
El último ejemplo de la sección anterior perdió su relación de aspecto original. El círculo se convirtió en una elipse, el cuadrado en un rectángulo, el
triángulo en otro triángulo.
El enfoque de longitud o porcentaje no es lo suficientemente flexible para mantener la relación de aspecto en todo momento. auto no ayuda, ya que es
posible que no sepa qué dimensión de su elemento será más grande. Sin embargo, para cubrir ciertas áreas con un
imagen (y la relación de aspecto correcta) por completo o para contener una imagen con la relación de aspecto correcta por
completo en un área de fondo, los valores, contener y cubrir proporcionan la funcionalidad adicional.
Perdón por el mal juego de palabras, pero vamos a usar una foto del día de Biswarup Ganguly para demostración Digamos que esta es su
pantalla y el área gris está fuera de su pantalla visible. Para la demostración, vamos a suponer una proporción de 16 × 9.
Queremos usar la imagen del día antes mencionada como fondo. Sin embargo, recortamos la imagen a 4x3 por alguna razón. Podríamos
establecer la propiedad de tamaño de fondo en una longitud fija, pero nos centraremos en contener y cubrir. Tenga en cuenta que también
asumo que no alteramos el ancho y/o la altura del cuerpo.
contener
contener
Escale la imagen, conservando su relación de aspecto intrínseca (si la hay), al tamaño más grande, de modo que tanto su
ancho como su altura puedan caber dentro del área de posicionamiento del fondo.
Esto asegura que la imagen de fondo siempre esté completamente contenida en el área de posicionamiento del fondo, sin embargo,
podría haber algún espacio vacío lleno con su color de fondo en este caso:
cubrir
Escale la imagen, conservando su relación de aspecto intrínseca (si la hay), al tamaño más pequeño posible, de modo que tanto
su ancho como su altura puedan cubrir completamente el área de posicionamiento del fondo.
Esto asegura que la imagen de fondo cubra todo. No habrá color de fondo visible, sin embargo, dependiendo de la proporción de la pantalla,
una gran parte de su imagen podría quedar cortada:
} div.contain {
tamaño de fondo: contener;
} div.cover
{ tamaño de fondo: cover;
} /************************************************
Estilos adicionales para los cuadros de explicación
******************************************** */
} div + div
{ claro: ambos;
borde superior: 1px plateado punteado;
parte superior acolchada: 1ex;
margen: 1ex;
relleno: 1ex;
opacidad: 0,8;
pantalla: bloque;
ancho: 10ex; tamaño
de fuente: 0,7 em;
contenido: attr(clase);
}
<div>
<div class="contain"></div> <p>Observe
el fondo gris. La imagen no cubre toda la región, pero es totalmente
<em>contenida</em>. </p>
</div> <div>
.myClass
{ background-image: url('ruta/a/imagen.jpg'); posición de
fondo: 50% 50%;
}
La posición se establece mediante una coordenada X e Y y se establece mediante cualquiera de las unidades utilizadas en CSS.
Unidad Descripción
Un porcentaje para el desplazamiento horizontal es relativo a (ancho del área de posicionamiento de fondo - ancho de la
imagen de fondo).
valor% valor% Un porcentaje para el desplazamiento vertical es relativo a (altura del área de posicionamiento de fondo - altura de la imagen
de fondo)
El tamaño de la imagen es el tamaño dado por background-size.
Compensa la imagen de fondo por una longitud dada en píxeles en relación con la parte superior izquierda del área de
posicionamiento valuepx valuepx del fondo
Las unidades en CSS se pueden especificar por diferentes métodos (ver aquí).
Además de la propiedad abreviada anterior, también se pueden usar las propiedades de fondo abreviadas background position-x y background-
position-y. Estos le permiten controlar las posiciones x o y por separado.
NOTA: Esto es compatible con todos los navegadores excepto Firefox (versiones 31-48) 2. Firefox 49, que se lanzará en
septiembre de 2016, admitirá estas propiedades. Hasta entonces, hay un truco de Firefox dentro de esta pila .
Respuesta de desbordamiento.
Valores posibles:
CSS
.ejemplo
{ ancho: 300px;
borde: 20px negro sólido;
relleno: 50px; fondo: url(https://
static.pexels.com/ photos/ 6440/ magazines-desk-work-workspace-medium.jpg); repetición de fondo: sin repetición;
.ejemplo1 {}
HTML
Resultado:
Más:
https://www.w3.org/TR/css3-background/#the-background-origin
https://developer.mozilla.org/en-US/docs/Web/CSS/background-origin
#mydiv
{ imagen de fondo: url(img_1.png), /* imagen superior */
url(img_2.png), /* imagen del medio */
url(img_3.png); /* imagen inferior */
posición de fondo: abajo a la derecha, arriba a
la izquierda, arriba
a la derecha;
repetición de fondo: sin repetición, repetición,
sin repetición;
Las imágenes se apilarán una encima de la otra con el primer fondo en la parte superior y el último fondo en la parte posterior.
img_1 estará en la parte superior, img_2 e img_3 en la parte inferior.
#mydiv
{ background: url(img_1.png) inferior derecha sin repetición, url(img_2.png)
superior izquierda repetida, url(img_3.png) superior
derecha sin repetición;
}
#mydiv
{ background: url(image.png) abajo a la derecha sin repetición, gradiente
lineal (hacia abajo, #fff 0%,#000 100%);
}
Manifestación
cuerpo
{ imagen de fondo: url('img.jpg'); archivo
adjunto de fondo: fijo;
}
Valor Descripción scroll El fondo se desplaza junto con
el elemento. Esto es predeterminado. fijo El fondo es fijo con respecto a la ventana gráfica.
local El fondo se desplaza junto con el contenido del elemento. initial Establece esta
principal.
Ejemplos
de archivo adjunto de fondo: desplazamiento
cuerpo
{ imagen de fondo: url('imagen.jpg'); archivo
adjunto de fondo: desplazamiento;
}
cuerpo
{ imagen de fondo: url('imagen.jpg'); archivo
adjunto de fondo: fijo;
}
La imagen de fondo del div se desplazará cuando se desplace el contenido del div.
división {
Valores
border-box es el valor predeterminado. Esto permite que el fondo se extienda hasta el borde exterior del borde del elemento.
padding-box recorta el fondo en el borde exterior del relleno del elemento y no permite que se extienda hacia el borde; content-box recorta
el fondo en el borde del cuadro de contenido. heredar aplica la configuración del padre al elemento seleccionado.
CSS
.ejemplo
{ ancho: 300px;
borde: 20px negro sólido; relleno:
50px; fondo: url(https://
static.pexels.com/ photos/ 6440/ magazines-desk-work-workspace-medium.jpg); repetición de fondo: sin repetición;
.ejemplo1 {}
HTML
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod
tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
<p>Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.</p> </div>
Por defecto, una imagen de fondo se repite tanto vertical como horizontalmente.
div
{ imagen de fondo: url("img.jpg"); fondo-repetir:
repetir-y;
}
Sintaxis CSS: background-blend-mode: normal | multiplicar | pantalla | superposición | oscurecer | aligerar | esquivar el color | saturación |
color | luminosidad;
/ * Para IE 8*/
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000,
endColorstr=#99000000)";
Capítulo 6: Centrado
Sección 6.1: Uso de Flexbox
HTML:
<div class="contenedor">
<img src="http://lorepixel.com/400/200" />
</div>
CSS:
} .container
{ pantalla: flex;
justificar-contenido: centro; /* centro horizontal */
} img
{ align-self: centro; /* centro vertical */
}
Ver resultado
HTML:
CSS:
html, cuerpo
{ altura: 100%;
} cuerpo
{ pantalla: flex;
justificar-contenido: centro; /* centro horizontal */ align-items: centro; /
* centro vertical */
}
Ver resultado
Consulte Centrado dinámico vertical y horizontal en la documentación de Flexbox para obtener más detalles sobre flexbox y el significado de los estilos.
Flexbox es compatible con todos los principales navegadores, excepto las versiones de IE anteriores a la 10.
Algunas versiones recientes del navegador, como Safari 8 e IE10, requieren prefijos de proveedores.
Para una forma rápida de generar prefijos existe Autoprefixer, una herramienta de terceros.
Para obtener una visión más detallada de la compatibilidad con el navegador flexbox, consulte esta respuesta.
Tenga en cuenta que con esta técnica, el elemento podría terminar renderizándose en un límite de píxel no entero, haciendo que se vea
borroso. Ver esta respuesta en SO para una solución.
HTML
<div class="contenedor">
<div clase="elemento"></div>
</div>
CSS
.container
{ posición: relativa;
}
.element
{ posición: absoluta; arriba:
50%; izquierda: 50%;
transformar: traducir (-50%,
-50%);
}
La propiedad de transformación necesita prefijos para ser compatible con navegadores más antiguos. Se necesitan prefijos para Chrome<=35,
Safari<=8, Opera<=22, Android Browser<=4.4.4 e IE9. Las transformaciones CSS no son compatibles con IE8 y versiones anteriores.
-webkit-transform: traducir (-50%, -50%); /* Chrome, Safari, Opera, Android */ -ms-transform: translate(-50%, -50%); /
* IE 9 */ transformar: traducir (-50%, -50%);
MÁS INFORMACIÓN
El elemento se posiciona de acuerdo con el primer padre no estático (posición: relativa, absoluta o fija). Explora más en este violín y
este tema de documentación.
Para el centrado solo horizontal, use izquierda: 50 % y transforme: translateX(-50 %). Lo mismo ocurre con el centrado solo vertical: centre
with top: 50% and transform: translateY(-50%).
El uso de elementos de ancho/alto no estáticos con este método de centrado puede hacer que el elemento centrado parezca aplastado.
Esto sucede principalmente con elementos que contienen texto y se puede solucionar agregando: margen derecho: -50%; y margen
inferior: -50%;. Ver este violín para más información.
Los objetos se pueden centrar usando margin: 0 auto; si son elementos de bloque y tienen un ancho definido.
HTML
<div class="containerDiv">
<div id="centeredDiv"></div> </div>
<div class="containerDiv">
<p id="centeredParagraph">Este es un párrafo centrado.</p> </div>
<div class="containerDiv">
<img id="Imagencentrada"
src="https://i.kinja-img.com/gawker-media/image/upload/s--c7Q9b4Eh--/c_scale,fl_progressive,q_80,w_ 800/qqyvc3bkpyl3mfhr8all.jpg" /
> </div>
CSS
.containerDiv
{ ancho: 100%;
altura: 100px;
parte inferior del relleno: 40px;
}
#centeredDiv
{ margen: 0
automático; ancho:
200px; altura:
100px; borde: 1px sólido #000;
}
#centeredParagraph
{ ancho: 200px;
margen: 0 automático;
}
#imagencentrada
{ pantalla: bloque;
ancho: 200px;
margen: 0 automático;
}
Resultado:
El tipo de centrado más común y sencillo es el de líneas de texto en un elemento. CSS tiene la regla text-align: center para este propósito:
HTML
<p>Lorem ipsum</p>
CSS
pag {
alineación de texto: centro;
}
Esto no funciona para centrar elementos de bloque enteros. text-align controla solo la alineación del contenido en línea como el texto en su
elemento de bloque principal.
Los márgenes automáticos, combinados con valores de cero para los desplazamientos izquierdo y derecho o superior e inferior , centrarán
los elementos absolutamente posicionados dentro de su padre.
Ver resultado
HTML
<div clase="padre">
<img class="centro" src="http://lorepixel.com/400/200/" />
</div>
CSS
.parent
{ posición: relativa; altura:
500px;
}
.center
{ posición: absoluta;
margen: automático;
superior: 0; derecha: 0;
inferior: 0; izquierda: 0;
Los elementos que no tienen su propio ancho y alto implícitos como las imágenes, necesitarán esos valores definidos.
CSS
.center
{ posición: absoluta; altura:
50px; ancho: 50px; fondo:
rojo; arriba: calc(50% -
50px / 2); /* altura dividida
por 2*/ izquierda: calc(50% - 50px / 2); /* ancho dividido por 2*/
HTML
<div clase="centro"></div>
CSS
div
{ altura: 200px; altura
de línea: 200px;
}
Eso es bastante feo, pero puede ser útil dentro de un elemento <input /> . La propiedad line-height solo funciona cuando el texto que se va a centrar
ocupa una sola línea. Si el texto se ajusta a varias líneas, la salida resultante no se centrará.
Ver resultado
Usa estas 3 líneas para alinear verticalmente prácticamente todo. Solo asegúrese de que el div/imagen al que aplica el código tenga un padre con una
altura.
CSS
div.vertical
{ posición: relativa; arriba:
50%; transformar:
traducirY(-50%);
}
HTML
HTML
<div clase="contenido">
<div class="posición-contenedor"> <div
class="thumb">
<img src="http://lorepixel.com/400/200/"> </div> <div
class="detalles"> <p class="banner-title">texto 1</p> <p
class ="banner-text">contenido contenido contenido
contenido contenido contenido contenido contenido
CSS
.contenido * {
tamaño de caja: caja de borde;
} .content .posición-contenedor {
pantalla: mesa;
} .contenido .detalles {
pantalla: tabla-celda;
alineación vertical: medio;
ancho: 33,333333%;
relleno: 30px; tamaño de
fuente: 17px; alineación
de texto: centro;
Enlace a JSFiddle
Los puntos principales son los 3 contenedores .thumb, .details y .position- container:
Los .detalles deben tener el ancho real establecido ancho: .... y mostrar: table-cell, vertical-align:
medio.
El .thumb debe tener ancho: 100% si desea que ocupe todo el espacio restante y se verá afectado por el ancho de .details .
La imagen (si tiene una imagen) dentro de .thumb debe tener ancho: 100%, pero no es necesario si tiene las proporciones correctas.
Configure un elemento "fantasma" dentro del contenedor para que se centre y tenga una altura del 100%, luego use vertical-align: middle
tanto en eso como en el elemento que se centrará.
CSS
/ * Puede querer hacer esto si existe el riesgo de que el contenedor sea más angosto que el elemento interior */ white-space: nowrap;
/ * El elemento fantasma
*/ .block:before { content: '';
pantalla: bloque en línea;
altura: 100%; alineación
vertical: medio;
/ * El elemento a centrar, también puede ser de cualquier ancho y alto */ .centered { display: inline-block;
alineación vertical: medio; ancho: 300px; espacio en blanco: normal; /* Restablecimiento del
comportamiento heredado de nowrap */
HTML
El contenedor exterior
El contenedor interior
el cuadro de contenido
Manifestación
HTML
<div class="contenedor-externo">
<div class="contenedor-interno">
<div class="contenido-centrado">
¡Puedes poner cualquier cosa acá! </
div>
</div> </
div>
CSS
cuerpo
{ margen : 0;
}
.outer-container { posición :
absoluta; pantalla: mesa;
ancho: 100%; /* Esto podría
ser de CUALQUIER ancho */
.inner-container { pantalla:
table-cell; alineación vertical:
medio; alineación de texto:
centro;
}
.centered-content { display:
inline-block; alineación de
texto: izquierda; fondo: #fff;
relleno: 20px; borde: 1px sólido
#000;
CSS
.wrap
{ altura: 50px;/* altura máxima de la imagen */
anchura: 100px; borde: 1px azul sólido; alineación
de texto: centro;
} .wrap:before
{ contenido:"";
pantalla: bloque en línea; altura:
100%; alineación vertical:
medio; ancho: 1px;
img
{ alineación vertical: medio;
}
HTML
<div clase="centro">
Centrar vertical y horizontalmente </div>
CSS
.center
{ posición: absoluta;
fondo: #ccc;
izquierda:
50%; ancho:
150px; margen izquierdo: -75px; /* ancho * -0.5 */
arriba:
50%; altura:
200px; margen superior: -100px; /* altura * -0.5 */
}
HTML
<div clase="centro">
Centrar solo horizontalmente </
div>
CSS
.center
{ posición: absoluta;
fondo: #ccc;
izquierda:
50%; ancho:
150px; margen izquierdo: -75px; /* ancho * -0.5 */
}
HTML
<div clase="centro">
Centrar solo verticalmente </
div>
CSS
.center
{ posición: absoluta;
fondo: #ccc;
arriba:
50%; altura:
200px; margen superior: -100px; /* ancho * -0.5 */
}
Para una mayor compatibilidad con navegadores, una solución alternativa con elementos auxiliares:
HTML
CSS
.vcenter--container { pantalla:
tabla; altura: 100%;
posición: absoluta;
desbordamiento: oculto;
ancho: 100%;
} .vcenter--ayudante {
pantalla: tabla-celda;
alineación vertical: medio;
} .vcenter--content { margen:
0 auto; ancho: 200px;
HTML
<div class="envoltorio">
<div clase="padre"> <div
clase="hijo"></div> </div> </div>
CSS
.envoltura
{ pantalla: tabla;
alineación vertical: centro;
ancho: 200px; altura: 200px;
color de fondo: #9e9e9e;
} .parent
{ pantalla: tabla-celda;
alineación vertical: medio;
alineación de texto: centro;
} .child
{ pantalla: bloque en línea;
alineación vertical: medio;
alineación de texto: centro;
ancho: 100px; altura: 100px;
color de fondo: verde
azulado;
}
ancho y la altura del elemento incluyen el contenido y el relleno. border-box El ancho y la altura
Los bordes
El navegador crea un rectángulo para cada elemento del documento HTML. El modelo de caja describe cómo se agregan el relleno, el
borde y el margen al contenido para crear este rectángulo.
El perímetro de cada una de las cuatro áreas se llama borde. Cada borde define un cuadro.
El rectángulo más interior es el cuadro de contenido. El ancho y alto de esto depende del contenido representado del
elemento (texto, imágenes y cualquier elemento secundario que pueda tener).
El siguiente es el cuadro de relleno, como lo define la propiedad de relleno . Si no hay un ancho de relleno definido, el borde
del relleno es igual al borde del contenido.
Luego tenemos el cuadro de borde, como lo define la propiedad de borde . Si no hay un ancho de borde definido, el borde del
borde es igual al borde del relleno.
El rectángulo más exterior es el cuadro de margen, tal como lo define la propiedad de margen . Si no hay un ancho de margen
definido, el borde del margen es igual al borde del borde.
Ejemplo
div
{ borde: 5px rojo sólido;
margen: 50px; relleno:
20px;
Este CSS diseña todos los elementos div para que tengan un borde superior, derecho, inferior e izquierdo de 5px de ancho; un margen superior, derecho, inferior e
izquierdo de 50px; y un relleno superior, derecho, inferior e izquierdo de 20px. Ignorando el contenido, nuestro cuadro generado se verá así:
Como no hay contenido, la región de contenido (el cuadro azul en el medio) no tiene alto ni ancho (0px por 0px).
El cuadro de relleno por defecto tiene el mismo tamaño que el cuadro de contenido, más el ancho de 20 px en los cuatro bordes que estamos definiendo
El cuadro de borde tiene el mismo tamaño que el cuadro de relleno, más el ancho de 5 px que estamos definiendo arriba con la propiedad de borde (50 px
por 50 px).
Finalmente, el cuadro de margen tiene el mismo tamaño que el cuadro de borde, más el ancho de 50 px que estamos definiendo arriba con la propiedad
de margen (dando a nuestro elemento un tamaño total de 150 px por 150 px).
Ahora vamos a darle a nuestro elemento un hermano con el mismo estilo. El navegador mira el modelo de caja de ambos elementos para determinar dónde
debe colocarse el nuevo elemento en relación con el contenido del elemento anterior:
El contenido de cada elemento está separado por un espacio de 150 px, pero las cajas de los dos elementos se tocan entre sí.
Si luego modificamos nuestro primer elemento para que no tenga margen derecho, el borde del margen derecho estaría en la misma posición que el borde del borde
o alto real en la pantalla tan pronto como comience a agregar relleno y estilos de borde al
elemento.
área de texto
{ ancho: 100%;
relleno: 3px;
tamaño de caja: caja de contenido; /* valor por defecto */
}
Dado que el relleno se agregará al ancho del área de texto, el elemento resultante es un área de texto que es más ancho que
100%.
Afortunadamente, CSS nos permite cambiar el modelo de caja con la propiedad de tamaño de caja para un elemento. Hay tres valores
diferentes para la propiedad disponible:
caja de contenido: el modelo de caja común: el ancho y la altura solo incluyen el contenido, no el relleno ni el borde
Para resolver el problema del área de texto anterior, simplemente puede cambiar la propiedad de tamaño de cuadro a cuadro de relleno
o cuadro de borde. border-box es el más utilizado.
área de texto
{ ancho: 100%;
relleno: 3px;
tamaño de caja: caja de borde;
}
Para aplicar un modelo de cuadro específico a cada elemento de la página, use el siguiente fragmento:
html
{ tamaño del cuadro: cuadro de borde;
}
*, *:antes, *:después {
En esta codificación box-sizing:border-box; no se aplica directamente a *, por lo que puede sobrescribir fácilmente esta propiedad en
elementos individuales.
Capítulo 8: Márgenes
Parámetro Detalles
0 establezca el margen en
auto ninguno usado para centrar, estableciendo valores uniformemente en cada lado
unidades (por ejemplo, px) consulte la sección de parámetros en Unidades para obtener una lista de unidades
<div>
algo de contenido
</div>
<div>
un poco más de contenido
</div>
Estarán a 10px de distancia ya que los márgenes verticales colapsan sobre uno y otro. (El espaciado no será la suma de dos márgenes).
<span>algo<span>contenido
Estarán separados 20px ya que los márgenes horizontales no colapsan sobre uno y otro. (El espaciado será la suma de dos márgenes).
Estos elementos estarán separados 15px verticalmente. Los márgenes se superponen tanto como sea posible, pero el
margen más grande determinará el espacio entre los elementos.
.outer-
top{ margen: 10px;
} .inner-
top{ margen: 15px;
} .outer-
bottom{ margen: 20px;
} .inner-
bottom{ margen: 25px;
}
<div class="superior-exterior">
<div class="parte superior interna">
algo de contenido
</div> </
div> <div
class="parte inferior exterior">
<div class="inner-bottom">
un poco más de contenido
</div> </
div>
¿Cuál será el espacio entre los dos textos? (pase el cursor para ver la respuesta)
El espaciado será de 25px. Dado que los cuatro márgenes se tocan entre sí, colapsarán, utilizando así el margen más
grande de los cuatro.
¿Cuál será el espacio entre los dos textos? (pase el cursor para ver la respuesta)
¡El espacio será de 59px! Ahora solo los márgenes de .outer-top y .outer-bottom se tocan entre sí y son los únicos
márgenes contraídos. Los márgenes restantes están separados por los bordes. Entonces tenemos 1px + 10px + 1px +
15px + 20px + 1px + 25px + 1px. (Los 1px son los bordes...)
HTML:
<h1>Título</h1>
<div>
<p>Párrafo</p> </div>
CSS
h1
{ margen: 0;
fondo: #cff;
} div
{ margen: 50px 0 0 0;
fondo: #cfc;
}p
{ margen: 25px 0 0 0;
fondo: #cf9;
}
En el ejemplo anterior, solo se aplica el margen más grande. Es posible que haya esperado que el párrafo se ubicara a 60 px del h1 (ya que el
elemento div tiene un margen superior de 40 px y la p tiene un margen superior de 20 px). Esto no sucede porque los márgenes colapsan para
formar un solo margen.
CSS le permite especificar un lado determinado para aplicar el margen. Las cuatro propiedades proporcionadas para este propósito son:
margen izquierdo
margen derecho
margen superior
margen inferior
El siguiente código aplicaría un margen de 30 píxeles al lado izquierdo del div seleccionado. Ver resultado
HTML
<div id="miDiv"></div>
CSS
#myDiv
{ margen izquierdo: 30px;
altura: 40px; ancho:
40px; color de fondo: rojo;
}
Parámetro Detalles
margin-left La dirección en la que se debe aplicar el margen. 30px
La propiedad de margen estándar se puede expandir para especificar diferentes anchos a cada lado de los elementos seleccionados.
La sintaxis para hacer esto es la siguiente:
El siguiente ejemplo aplica un margen de ancho cero en la parte superior del div, un margen de 10 px en el lado derecho, un margen
de 50 px en el lado izquierdo y un margen de 100 px en el lado izquierdo. Ver resultado
HTML
<div id="miDiv"></div>
CSS
#myDiv
{ margen: 0 10px 50px 100px; altura:
40px; ancho: 40px; color de fondo:
rojo;
/ *igual a:*/
margen:1px 1px;
/ *igual a:*/
/ *igual a:*/
Otro ejemplo:
pags{
margen:10px 15px; / * 10px de margen superior e inferior y 15px de margen derecho e izquierdo*/
/ *igual a:*/
/ *igual a:*/
Agregamos un valor de ancho que es más bajo que el ancho de la ventana y la propiedad automática de margen luego distribuye el espacio
restante a la izquierda y a la derecha:
#miDiv
{ ancho:80%;
margen: 0
automático; }
En el ejemplo anterior, usamos la declaración de margen abreviada para establecer primero 0 en los valores de margen superior e inferior
(aunque podría ser cualquier valor) y luego usamos auto para permitir que el navegador asigne el espacio automáticamente a los valores de
margen izquierdo y derecho.
En el ejemplo anterior, el elemento #myDiv se establece en un 80 % de ancho, lo que deja un 20 % restante. El navegador distribuye
este valor a los lados restantes de modo que:
.parent
{ ancho : 500px;
altura: 300px;
}
.niño
{ ancho : 100px;
altura: 100px;
margen izquierdo: 10%; /* (ancho de padre * 10/100) => 50px */
}
Pero ese no es el caso, cuando se trata de margin-top y margin-bottom. Ambas propiedades, en porcentajes, no son relativas a la altura del
contenedor principal sino al ancho del contenedor principal.
Asi que,
.parent
{ ancho : 500px;
altura: 300px;
}
.niño
{ ancho : 100px;
altura: 100px;
margen izquierdo: 10%; /* (parentWidth * 10/100) => 50px */ margin-
top: 20%; /* (ancho de padre * 20/100) => 100px */
}
div{
pantalla: en línea;
}
Capítulo 9: Relleno
Sección 9.1: Taquigrafía de relleno
La propiedad de relleno establece el espacio de relleno en todos los lados de un elemento. El área de relleno es el espacio entre el contenido del
elemento y su borde. No se permiten valores negativos.
Para guardar la adición de relleno a cada lado individualmente (usando padding-top, padding-left, etc.), puede escribirlo de forma abreviada, como
se muestra a continuación:
Cuatro valores:
<estilo> .myDiv
{ relleno: 25px 50px 75px 100px; /* arriba a la derecha abajo a la izquierda; */
} </estilo>
<div clase="miDiv"></div>
Tres valores:
<estilo> .myDiv
{ relleno: 25px 50px 75px; /* arriba a la izquierda/abajo a la derecha */
} </estilo>
<div clase="miDiv"></div>
Dos valores:
<estilo> .myDiv
{ relleno: 25px 50px; /* arriba/abajo izquierda/derecha */
} </estilo>
<div clase="miDiv"></div>
Un valor:
<estilo> .myDiv {
} </estilo>
<div clase="miDiv"></div>
relleno superior
relleno derecho
relleno inferior relleno
izquierdo
} </estilo>
<div class="miClase"></div>
Cada esquina de un elemento puede tener hasta dos valores, para el radio vertical y horizontal de esa esquina (para un máximo de 8
valores).
El primer conjunto de valores define el radio horizontal. El segundo conjunto opcional de valores, precedido por un radio vertical , define el
'/'. Si solo se proporciona un conjunto de valores, se utiliza tanto para el radio vertical como para el horizontal.
El 10px es el radio horizontal de la parte superior izquierda y la parte inferior derecha. Y el 5% es el radio horizontal de la parte superior derecha e
inferior izquierda. Los otros cuatro valores después de '/' son los radios verticales para arriba a la izquierda, arriba a la derecha, abajo a la derecha y
abajo a la izquierda.
Al igual que con muchas propiedades de CSS, se pueden usar abreviaturas para cualquiera o todos los valores posibles. Por lo tanto,
puede especificar de uno a ocho valores. La siguiente abreviatura le permite establecer el radio horizontal y vertical de cada esquina en el
mismo valor:
HTML:
<div class='caja'></div>
CSS:
.box
{ ancho: 250px;
altura: 250px; color
de fondo: negro; borde-radio: 10px;
Border-radius se usa más comúnmente para convertir elementos de cuadro en círculos. Al establecer el radio del borde en la mitad de la
longitud de un elemento cuadrado, se crea un elemento circular:
.círculo
{ ancho: 200px;
altura: 200px; borde-
radio: 100px;
}
Debido a que border-radius acepta porcentajes, es común usar 50% para evitar calcular manualmente el valor del radio del borde:
.círculo
{ ancho: 150px;
altura: 150px;
borde-radio: 50%;
}
Si las propiedades de ancho y alto no son iguales, la forma resultante será un óvalo en lugar de un círculo.
-webkit-border-superior-derecho-radio: 4px;
-webkit-border-bottom-right-radius: 4px; -webkit-
border-bottom-left-radius: 0; -webkit-border-top-left-
radius: 0; -moz-border-radio-superior derecho: 4px;
-moz-border-radius-bottomright: 4px; -moz-border-
radius-bottomleft: 0; -moz-border-radio-superior
izquierda: 0; borde-superior-derecho-radio: 4px;
borde-inferior-derecho-radio: 4px; borde-inferior-
izquierda-radio: 0; borde-superior-izquierda-
radio: 0;
Ejemplos:
border-style también puede tener los valores none y hidden. Tienen el mismo efecto, excepto trabajos ocultos para resolución de conflictos
de borde para elementos <table> . En una <tabla> con múltiples bordes, ninguno tiene la prioridad más baja (es decir, en un conflicto, el borde
se mostraría) y oculto tiene la prioridad más alta (es decir, en un conflicto, el borde no se mostraría).
Usando box-shadow:
.div3
{ posición: relativo; borde:
5px sólido #000; ancho: 100px;
altura: 100px; margen: 20px;
} .div3:antes de { "
contenido: ";
posición: absoluta; borde:
5px azul sólido; índice z: -1;
arriba: 5px; izquierda: 5px;
derecha: 5px; abajo: 5px;
http://jsfiddle.net/MadalinaTn/bvqpcohm/2/
En lugar de escribir:
Estas abreviaturas también están disponibles para cada lado de un elemento: borde superior, borde izquierdo, borde derecho y
borde inferior. Entonces puedes hacer:
tabla
{ borde-colapso: separado; /* predeterminado */
espacio entre bordes: 2px; /* Solo funciona si border-collapse está separado */
}
La imagen se dividirá en nueve regiones con 30x30 píxeles. Los bordes se usarán como esquinas del borde, mientras que el lado se usará en el
medio. Si el elemento es más alto o más ancho que 30 px, esta parte de la imagen se estirará .
La parte media de la imagen por defecto es transparente.
.bordeado {
imagen de borde: degradado lineal (a la derecha, rojo 20 %, verde 20 %, verde 40 %, azul 40 %, azul 60 %, granate 60 %,
granate 80 %, chocolate 80 %); /* degradado con los colores requeridos */
borde-imagen-segmento: 1;
}
HTML
El ejemplo anterior produciría un borde que se compone de 5 colores diferentes. Los colores se definen a través de un degradado lineal (puede
encontrar más información sobre degradados en los documentos). Puede encontrar más información sobre la propiedad border-image-slice en
el ejemplo de border-image en la misma página.
Habría notado que el borde izquierdo tiene un solo color (el color inicial del degradado) mientras que el borde derecho también tiene un solo
color (el color final del degradado). Esto se debe a la forma en que funciona la propiedad de imagen de borde.
Es como si el degradado se aplicara a todo el cuadro y luego los colores se enmascararan en las áreas de relleno y contenido, lo que
hace que parezca que solo el borde tiene el degradado.
Los bordes que tienen un solo color dependen de la definición del degradado. Si el degradado es un degradado a la derecha ,
el borde izquierdo sería el color inicial del degradado y el borde derecho sería el color final. Si fuera un degradado hacia abajo ,
el borde superior sería el color inicial del degradado y el borde inferior sería el color final. A continuación es
Si el borde se requiere solo en lados específicos del elemento, entonces la propiedad border-width se puede usar como con cualquier
otro borde normal. Por ejemplo, agregar el siguiente código produciría un borde solo en la parte superior del elemento.
Tenga en cuenta que cualquier elemento que tenga la propiedad border-image no respetará el border-radius (es decir, el borde no se
curvará). Esto se basa en la siguiente declaración en la especificación:
Los fondos de un cuadro, pero no su imagen de borde, se recortan en la curva apropiada (según lo determinado por
'background-clip').
Por ejemplo, si quisiera agregar un borde al lado izquierdo de un elemento, podría hacerlo:
#elemento
{ borde izquierdo: 1px negro sólido;
}
ranura Contorno acanalado 3D, depende del valor del color del contorno
cresta Contorno estriado en 3D, depende del valor del color del contorno
recuadro Contorno insertado 3D, depende del valor del color del contorno
comienzo Contorno inicial 3D, depende del valor del color del contorno
ninguna sin contorno
El contorno es una línea que rodea el elemento, fuera del borde. A diferencia del borde, los contornos no toman ninguna
espacio en el modelo de caja. Por lo tanto, agregar un contorno a un elemento no afecta la posición del elemento u otros
elementos.
Además, los contornos pueden no ser rectangulares en algunos navegadores. Esto puede suceder si el contorno se aplica en un lapso
elemento que tiene texto con diferentes propiedades de tamaño de fuente en su interior. A diferencia de los bordes, los contornos no se pueden haber redondeado
esquinas
Las partes esenciales del contorno son el color del contorno, el estilo del contorno y el ancho del contorno.
Un contorno es una línea alrededor de un elemento. Se muestra alrededor del margen del elemento. Sin embargo lo és
pag {
borde: 1px negro sólido;
contorno-color:azul;
altura de línea: 30px;
}
.p1{
estilo de esquema: punteado;
}
.p2{
estilo de contorno: discontinuo;
}
.p3{
estilo de esquema: sólido;
}
HTML
overflow-wrap le dice a un navegador que puede dividir una línea de texto dentro de un elemento de destino en varias líneas en un
lugar que de otro modo sería irrompible. Útil para evitar que una larga cadena de texto cause problemas de diseño debido al
desbordamiento de su contenedor.
CSS
div
{ ancho: 100px;
contorno: 1px punteado #bbb;
}
#div1
{ desbordamiento-envoltura:normal;
}
#div2
{ overflow-wrap:romper-palabra;
}
HTML
<div id="div1">
<strong>#div1</strong>: las palabras pequeñas se muestran normalmente, pero una palabra larga como <span
style="red;">supercalifragilisticexpialidocious es demasiado larga, por lo que se desbordará más allá del borde del salto de línea. </
div>
<div id="div2">
<strong>#div2</strong>: las palabras pequeñas se muestran normalmente, pero una palabra larga como <span
style="red;">supercalifragilisticexpialidocious se dividirá en el salto de línea y continuará en la línea siguiente.
</div>
HTML
<div id="div-x"> Si
este div es demasiado pequeño para mostrar su contenido, el
contenido de la izquierda y la derecha se recortará. </div>
<div id="div-y"> Si
este div es demasiado pequeño para mostrar su contenido, se
recortará el contenido de la parte superior e inferior. </div>
CSS
div
{ ancho: 200px;
altura: 200px;
}
#div-x
{ desbordamiento-x: oculto;
}
#div-y
{ desbordamiento-y: oculto;
}
HTML
<div>
Este div es demasiado pequeño para mostrar su contenido para mostrar los efectos de la propiedad de desbordamiento. </div>
CSS
div
{ ancho: 100px;
altura: 100px;
desbordamiento: desplazamiento;
}
Resultado
El contenido de arriba está recortado en un cuadro de 100 px por 100 px, con desplazamiento disponible para ver el contenido desbordado.
La mayoría de los navegadores de escritorio mostrarán barras de desplazamiento horizontales y verticales, ya sea que el contenido esté recortado o no.
Esto puede evitar problemas con las barras de desplazamiento que aparecen y desaparecen en un entorno dinámico. Las impresoras pueden imprimir contenido desbordado.
HTML
<div>
Incluso si este div es demasiado pequeño para mostrar su contenido, el contenido no se recorta.
</div>
CSS
div
{ ancho: 50px;
altura: 50px;
desbordamiento: visible;
}
Resultado
El contenido no se recorta y se representará fuera del cuadro de contenido si supera el tamaño de su contenedor.
CSS
img
{ flotador:
izquierda; margen derecho: 10px;
} div
{ desbordamiento: oculto; /* crea contexto de formato de bloque */
}
HTML
Resultado
Este ejemplo muestra cómo los párrafos dentro de un div con el conjunto de propiedades de desbordamiento interactuarán con una imagen flotante.
tipo de medio (Opcional) Este es el tipo de medio. Podría ser cualquier cosa en el rango de todos a la pantalla.
(Opcional) No aplica el CSS para este tipo de medio en particular y se aplica a todo
no
más.
característica de los medios Lógica para identificar el caso de uso de CSS. Opciones descritas a continuación.
Función de medios Detalles
relación de aspecto Describe la relación de aspecto del área de visualización de destino del dispositivo de salida.
Indica el número de bits por componente de color del dispositivo de salida. Si el dispositivo no es un
color
dispositivo de color, este valor es cero.
Indice de color Indica el número de entradas en la tabla de búsqueda de colores para el dispositivo de salida.
altura La función de medios de altura describe la altura de la superficie de representación del dispositivo de salida.
anchura máxima CSS no se aplicará en un ancho de pantalla más ancho que el especificado.
ancho mínimo CSS no se aplicará en un ancho de pantalla más estrecho que el especificado.
Altura máxima CSS no se aplicará en una altura de pantalla más alta que la especificada.
min-altura CSS no se aplicará en una altura de pantalla más corta que la especificada.
monocromo Indica el número de bits por píxel en un dispositivo monocromo (escala de grises).
orientación CSS solo se mostrará si el dispositivo está utilizando la orientación especificada. Ver comentarios para más detalles.
La función de ancho de medios describe el ancho de la superficie de representación del dispositivo de salida
ancho
(como el ancho de la ventana del documento o el ancho del cuadro de página en una impresora).
El CSS en desuso solo se mostrará en dispositivos cuya relación alto/ancho coincida con el especificado
relación de relación de aspecto
del dispositivo . Esta es una característica desaprobada y no se garantiza que funcione.
En desuso Igual que max-width pero mide el ancho físico de la pantalla, en lugar del
ancho máximo del dispositivo
ancho de visualización del navegador.
En desuso Igual que min-width pero mide el ancho físico de la pantalla, en lugar del
min-dispositivo-ancho
ancho de visualización del navegador.
En desuso Igual que max-height pero mide el ancho físico de la pantalla, en lugar del
altura máxima del dispositivo
ancho de visualización del navegador.
En desuso Igual que min-height pero mide el ancho físico de la pantalla, en lugar del
altura mínima del dispositivo
ancho de visualización del navegador.
llamado tipo de medio, se describen aspectos adicionales del dispositivo con características de medios como la disponibilidad de
@medios [...] {
/ * Una o más reglas CSS para aplicar cuando se satisface la consulta */
}
@media imprimir {
/ * Una o más reglas CSS para aplicar cuando se satisface la consulta */
Una consulta de medios que contiene un tipo de medio y una función de medios
Una consulta de medios que contiene una función de medios (y un tipo de medios implícito de "todos")
}
}
1. La página debe verse en una pantalla normal (no una página impresa, proyector, etc.).
2. El ancho del puerto de visualización del usuario debe ser de al menos 720 píxeles.
Si se cumplen estas condiciones, los estilos dentro de la consulta de medios estarán activos y el color de fondo de la página será azul cielo.
Las consultas de medios se aplican dinámicamente. Si en la carga de la página se cumplen las condiciones especificadas en la consulta de medios, se
aplicará el CSS, pero se desactivará inmediatamente si las condiciones dejan de cumplirse. Por el contrario, si inicialmente no se cumplen las condiciones,
el CSS no se aplicará hasta que se cumplan las condiciones especificadas.
En nuestro ejemplo, si el ancho del puerto de visualización del usuario es inicialmente mayor a 720 píxeles, pero el usuario reduce el ancho del
navegador, el color de fondo dejará de ser azul cielo tan pronto como el usuario haya cambiado el tamaño del puerto de visualización a menos de 720
píxeles en ancho.
El código CSS anterior le dará al elemento DOM HTML un color de fondo blanco cuando se imprima.
El parámetro mediatype tiene un prefijo not o only opcional que aplicará los estilos a todo excepto al tipo de medio especificado o solo al tipo de
medio especificado, respectivamente. Por ejemplo, el siguiente ejemplo de código aplicará el estilo a todos los tipos de medios, excepto a los impresos.
Y de igual manera, para solo mostrarlo solo en pantalla, se puede usar esto:
pantalla predeterminados
impresión Impresoras en general. Se utiliza para diseñar versiones impresas de sitios web.
PDA portátiles , teléfonos móviles y dispositivos portátiles con proyección en pantalla pequeña
tty Dispositivos con una cuadrícula de caracteres de paso fijo. Terminales, portátiles.
Información de contexto
Hay dos tipos de píxeles en la pantalla. Uno son los píxeles lógicos y el otro son los píxeles físicos. En su mayoría, los píxeles físicos siempre
permanecen iguales, porque es el mismo para todos los dispositivos de visualización. Los píxeles lógicos cambian según la resolución de los
dispositivos para mostrar píxeles de mayor calidad. La relación de píxeles del dispositivo es la relación entre los píxeles físicos y los píxeles
lógicos. Por ejemplo, el MacBook Pro Retina, iPhone 4 y superior informan una proporción de píxeles del dispositivo de 2, porque la resolución
lineal física es el doble de la resolución lógica.
La razón por la que esto funciona solo con navegadores basados en WebKit es por:
La función de ancho de medios describe el ancho de la superficie de representación del dispositivo de salida (como el ancho de la
ventana del documento o el ancho del cuadro de página en una impresora).
View-port es el ancho del propio dispositivo. Si la resolución de su pantalla dice que la resolución es 1280 x 720, el ancho de su puerto de visualización
es "1280px".
Más a menudo, muchos dispositivos asignan diferentes cantidades de píxeles para mostrar un píxel. Por ejemplo, el iPhone 6 Plus tiene una
resolución de 1242 x 2208. Pero el ancho real de la ventana gráfica y la altura de la ventana gráfica son 414 x 736. Eso significa que se usan 3
píxeles para crear 1 píxel.
Pero si no configuró la etiqueta meta correctamente, intentará mostrar su página web con su resolución nativa, lo que da como resultado una vista
alejada (textos e imágenes más pequeños).
A menudo, el diseño web receptivo implica consultas de medios, que son bloques CSS que solo se ejecutan si se cumple una condición.
Esto es útil para el diseño web receptivo porque puede usar consultas de medios para especificar diferentes estilos CSS para la versión
móvil de su sitio web en comparación con la versión de escritorio.
Pantalla @media only y (ancho mínimo: 300 px) y (ancho máximo: 767 px) { .site-
title { font-size: 80%;
/ * Los estilos en este bloque solo se aplican si el tamaño de la pantalla es de al menos 300 px de ancho, pero no más
que 767px */ }
Pantalla @media only y (ancho mínimo: 768 px) y (ancho máximo: 1023 px) { .site-
title { font-size: 90%;
/ * Los estilos en este bloque solo se aplican si el tamaño de la pantalla es de al menos 768 px de ancho, pero no más
de 1023 px */ }
.sitio-título { tamaño
de fuente: 120%;
}
/ * Los estilos en este bloque solo se aplican si el tamaño de la pantalla tiene más de 1024 px de ancho. */
}
Esta hoja de estilo aún se descarga, pero se aplica solo en dispositivos con un ancho de pantalla superior a 600 px.
Para agregar soporte para IE8, puede usar una de varias soluciones JS. Por ejemplo, Responder se puede agregar para agregar
compatibilidad con consultas de medios para IE8 solo con el siguiente código:
Mediaconsultas CSS es otra biblioteca que hace lo mismo. El código para agregar esa biblioteca a su HTML sería idéntico:
</script> <!
[finalizar]-->
La alternativa
Si no le gusta una solución basada en JS, también debería considerar agregar una hoja de estilo solo para IE<9 donde ajuste su estilo
específico para IE<9. Para eso, debe agregar el siguiente HTML a su código:
Nota :
Técnicamente es una alternativa más: usar hacks CSS para apuntar a IE<9. Tiene el mismo impacto que una hoja de estilo solo de
IE<9, pero no necesita una hoja de estilo separada para eso. Sin embargo, no recomiendo esta opción, ya que producen un código CSS
no válido (que es solo una de las varias razones por las que el uso de hacks CSS generalmente está mal visto hoy en día).
El uso más básico de un flotante es hacer que el texto se ajuste alrededor de una imagen. El siguiente código producirá dos párrafos y una
imagen, con el segundo párrafo fluyendo alrededor de la imagen. Tenga en cuenta que siempre está contenido después del elemento
flotante que fluye alrededor del elemento flotante.
HTML:
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Entero nec odio. Praesent libero. Sed cursus ante dapibus diam. Sed
nisi. Nulla quis sem at nibh elementum imperdiet. Duis sagittis ipsum. Praesent mauris. Fusce nec tellus sed augue sempre porta.
mauri masa. Vestíbulo lacinia arcu eget nulla. </p>
<p>Clase aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.
Curabitur sodales ligula en libero. Sed dignissim lacinia nunc. Tortor de Curabitur. Plumilla pellentesca. Aenean quam. In
scelerisque sem at dolor. Mecenas mattis. Sed convallis tristique sem. Proin ut ligula vel nunc egestas porttitor. Morbi lectus risus,
iaculis vel, suscipit quis, luctus non, massa. Fusce ac turpis quis ligula lacinia aliquet. </p>
CSS:
img
{ flotador:
izquierda; margen derecho: 1 rem;
}
elementos flotantes en el lado izquierdo o derecho inicial: establece esta propiedad en su valor
predeterminado. Lea acerca de la herencia inicial: hereda esta propiedad de su elemento principal.
<html>
<cabeza>
<estilo>
img { float:
izquierda;
p.claro
{ claro: ambos;
} </estilo>
</cabeza>
<cuerpo>
</
cuerpo> </html>
El truco clearfix es una forma popular de contener flotadores (N. Gallagher, también conocido como @necolas)
No debe confundirse con la propiedad clear , clearfix es un concepto (que también está relacionado con los flotantes, de ahí la posible confusión). Para
contener flotantes, debe agregar la clase .cf o .clearfix en el contenedor (el padre) y diseñar esta clase con algunas reglas que se describen a continuación.
3 versiones con efectos ligeramente diferentes (fuentes : un nuevo truco micro clearfix por N. Gallagher y clearfix recargado por TJ Koblentz):
Clearfix (con el colapso del margen superior de los flotadores contenidos aún ocurriendo)
.cf:después de {
contenido: "";
pantalla: mesa;
}
.cf:después de {
claro: ambos;
}
Clearfix también previene el colapso del margen superior de los flotadores contenidos
/ **
* Para navegadores modernos
* 1. El contenido del espacio es una forma de evitar un error de Opera cuando el
* El atributo contenteditable se incluye en cualquier otra parte del documento.
* De lo contrario, hace que aparezca un espacio en la parte superior e inferior de los
* elementos que están fijados.
* 2. El uso de `table` en lugar de `block` solo es necesario si se usa
* `:before` para contener los márgenes superiores de los elementos secundarios.
*/ .cf:antes, .cf:después
{ contenido: " "; /* 1 */ mostrar: tabla; /* 2 */
}
.cf:después de {
claro: ambos;
83
GoalKicker.com – Notas CSS para profesionales
Machine Translated by Google
.cf:antes, .cf:después
" ";{ contenido:
pantalla: mesa;
}
.cf:después de {
claro: ambos;
}
/ **
* Solo para IE 6/7 *
Incluya esta regla para activar hasLayout y contener flotantes. */ .cf { *zoom: 1;
Otro recurso: todo lo que sabe sobre clearfix es incorrecto (clearfix y BFC - Contexto de formato de bloque mientras que
hasLayout se relaciona con navegadores obsoletos IE6 tal vez 7)
<div>
<p>Este es el DIV 1</p> </
div> <div>
HTML:
<div class="exterior-div">
<div class="inner-div1">
<p>Este es el DIV 1</p>
</div> <div class="inner-div2">
CSS
.inner-div1
{ ancho: 50%;
margen derecho:
0px; flotador izquierdo;
fondo : #337ab7; relleno:
50px 0px;
}
.inner-div2
{ ancho: 50%;
margen derecho:
0px; flotador izquierdo;
fondo : #dd2c00; relleno:
50px 0px;
}
pag {
alineación de texto: centro;
}
HTML:
<div class="envoltorio">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Entero nec odio.</p> </div>
<div clase="contenido">
<h1>Contenido</h1>
<p>Clase aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.
Curabitur sodales ligula en libero. Sed dignissim lacinia nunc. Tortor de Curabitur. Plumilla pellentesca. Aenean quam. In
scelerisque sem at dolor. Mecenas mattis. Sed convallis tristique sem. Proin ut ligula vel nunc egestas porttitor. Morbi lectus risus,
iaculis vel, suscipit quis, luctus non, massa. Fusce ac turpis quis ligula lacinia aliquet. </p> </div>
</div>
CSS:
.envoltorio
{ ancho:600px;
relleno: 20px;
color de fondo: rosa;
/ * Los elementos flotantes no usan ninguna altura. Agregar "desbordamiento: oculto;" obliga a la
elemento principal que se expandirá para contener sus elementos secundarios flotantes. */
desbordamiento: oculto;
}
.barra lateral
{ ancho: 150px;
flotador
izquierdo; color de fondo: azul;
.contenido
{ ancho:450px;
flotar derecho;
color de fondo: amarillo;
}
</div>
</div>
CSS:
.envoltorio
{ ancho:600px;
color de fondo: rosa; relleno:
20px;
/ * Los elementos flotantes no usan ninguna altura. Agregar "desbordamiento: oculto;" obliga a la
elemento principal que se expandirá para contener sus elementos secundarios flotantes. */
desbordamiento: oculto;
}
.contenido
{ ancho: 300px;
color de fondo: amarillo; flotador
izquierdo;
}
HTML:
<div class="content">
<h1>Content</h1>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Entero nec odio. Praesent libero. Sed cursus ante dapibus diam. Sed
nisi. Nulla quis sem at nibh elementum imperdiet. Duis sagittis ipsum. Praesent mauris. Fusce nec tellus sed augue sempre porta.
mauri masa. Vestíbulo lacinia arcu eget nulla. </p> <p>Clase aptent taciti sociosqu ad litora torquent per conubia nostra, per
inceptos himenaeos.
Curabitur sodales ligula en libero. Sed dignissim lacinia nunc. Tortor de Curabitur. Plumilla pellentesca. Aenean quam. In
scelerisque sem at dolor. Mecenas mattis. Sed convallis tristique sem. Proin ut ligula vel nunc egestas porttitor. Morbi lectus risus,
iaculis vel, suscipit quis, luctus non, massa. Fusce ac turpis quis ligula lacinia aliquet. Maurisipsum. Nulla metus metus, ullamcorper
vel, tincidunt sed, euismod in, nibh. </p> </div>
CSS:
.sidebar { /*
`display:table;` reduce la columna */ display:table; flotador
izquierdo; color de fondo: azul;
.content { /*
`overflow:hidden;` evita que `.content` fluya bajo `.sidebar` */ overflow:hidden; color de fondo:
amarillo;
Violín
normal o small-caps
tamaño de fuente El tamaño de fuente dado en %, px, em o cualquier otra medida CSS válida
altura de línea La altura de la línea dada en %, px, em o cualquier otra medida CSS válida
Si se debe usar o no una cara confinada o expandida de la fuente. Los valores válidos son normal, ultracondensado,
estiramiento de fuente extracondensado, condensado , semicondensado , semiexpandido, expandido, extraexpandido o ultraexpandido
inicio de alineación de texto , final, izquierda, derecha, centro, justificar, emparejar padre
elemento {
fuente: [estilo de fuente] [variante de fuente] [peso de fuente] [tamaño de fuente/alto de línea] [familia de fuentes];
}
Puede tener todos sus estilos relacionados con fuentes en una sola declaración con la abreviatura de fuente . Simplemente use la propiedad de fuente ,
Por ejemplo, para hacer que todos los elementos p estén en negrita con un tamaño de fuente de 20 px y usando Arial como la familia de fuentes, normalmente
lo codificaría de la siguiente manera:
pag {
fuente-peso: negrita;
tamaño de fuente: 20px;
familia tipográfica: Arial, sans-serif;
}
pag {
fuente: negrita 20px Arial, sans-serif;
}
Nota: dado que font-style, font-variant, font-weight y line-height son opcionales, los tres son
omitido en este ejemplo. Es importante tener en cuenta que el uso del atajo restablece los otros atributos no proporcionados.
Otro punto importante es que los dos atributos necesarios para que funcione el atajo de fuente son tamaño de fuente y familia de fuentes. Si no se incluyen ambos,
La propiedad de comillas se utiliza para personalizar las comillas de apertura y cierre de la etiqueta <q> .
q{
comillas: "«" "»";
}
HTML:
CSS:
#elemento-uno
{ tamaño de fuente: 30px;
}
#elemento-dos
{ tamaño de fuente: 10px;
}
El texto dentro de #element-one tendrá un tamaño de 30 px , mientras que el texto en #element-two tendrá un tamaño de 10 px .
div
{ dirección: ltr; /* Predeterminado, lectura de texto de izquierda a derecha */
} .ex
{ dirección: rtl; /* texto leído de derecha a izquierda */
} .horizontal-tb { modo-
escritura: horizontal-tb; /* Por defecto, el texto se lee de izquierda a derecha y de arriba a abajo. */
} .vertical-rtl { modo de
escritura: vertical-rl; /* texto leído de derecha a izquierda y de arriba a abajo */
} .vertical-ltr { modo de
escritura: vertical-rl; /* texto leído de izquierda a derecha y de arriba abajo */
}
La propiedad de dirección se utiliza para cambiar la dirección del texto horizontal de un elemento.
La propiedad de modo de escritura cambia la alineación del texto para que pueda leerse de arriba a abajo o de izquierda a derecha, según el idioma.
El navegador intentará aplicar la fuente "Segoe UI" a los caracteres dentro de los elementos a los que apunta la propiedad anterior. Si esta
fuente no está disponible, o la fuente no contiene un glifo para el carácter requerido, el navegador recurrirá a Tahoma y, si es necesario, a
cualquier fuente sans-serif en la computadora del usuario. Tenga en cuenta que cualquier nombre de fuente con más de una palabra, como
"Segoe UI", debe tener comillas simples o dobles.
El navegador intentará aplicar el tipo de letra "Consolas" a los caracteres dentro de los elementos a los que apunta la propiedad anterior. Si
esta fuente no está disponible, o la fuente no contiene un glifo para el carácter requerido, el navegador volverá a "Courier New" y, si es
necesario, a cualquier fuente monoespaciada en la computadora del usuario.
La propiedad de desbordamiento de texto se ocupa de cómo se debe señalar a los usuarios el contenido desbordado. En este ejemplo, los
puntos suspensivos representan texto recortado.
.text
{ desbordamiento: oculto;
desbordamiento de texto: puntos suspensivos;
}
Desafortunadamente, text-overflow: ellipsis solo funciona en una sola línea de texto. No hay forma de admitir puntos suspensivos en la última
línea en CSS estándar, pero se puede lograr con la implementación de flexboxes solo para webkit no estándar.
.giveMeEllipsis {
desbordamiento: oculto;
desbordamiento de texto: puntos
suspensivos; pantalla: -webkit-caja;
-webkit-caja-orientar: vertical; -webkit-línea-
abrazadera: N; /* numero de lineas a mostrar */ line-height: X; /* reserva */
max-height: X*N; /* retroceder */
http://jsfiddle.net/csYjC/1131/
Recursos:
https://www.w3.org/TR/2012/WD-css3-ui-20120117/#text-overflow0
h1
{ texto-sombra: 2px 2px #0000FF;
}
h1
{ texto-sombra: 2px 2px 10px #0000FF;
}
Múltiples Sombras
h1
{ texto-sombra: 0 0 3px #FF0000, 0 0 5px #0000FF;
}
La propiedad de transformación de texto le permite cambiar las mayúsculas del texto. Los valores válidos son: mayúscula, mayúscula,
minúscula, inicial, heredar y ninguno
CSS
.ejemplo1
{ transformación de texto: mayúsculas;
} .example2
{ texto-transformar: capitalizar;
} .ejemplo3
{ transformación de texto: minúsculas;
}
HTML
</p>
h2 { /
* agrega un espacio de 1px horizontalmente entre cada letra;
también conocido como seguimiento
*/ espacio entre letras: 1px;
La propiedad letter-spacing se utiliza para especificar el espacio entre los caracteres de un texto.
p
{ espacio entre letras : -1px;
}
Recursos: https://developer.mozilla.org/en-US/docs/Web/CSS/letter-spacing
pag {
sangría de texto: 50px;
}
La propiedad text-indent especifica cuánto espacio horizontal debe moverse el texto antes del comienzo de la primera línea del contenido de texto de
un elemento.
Recursos:
text-decoration se puede usar en combinación con text-decoration-style y text-decoration-color como una propiedad abreviada:
.title { texto-
decoración-estilo: punteado; texto-
decoración-línea: subrayado; texto-decoración-
color: azul;
}
Cabe señalar que las siguientes propiedades solo son compatibles con Firefox
texto-decoración-color
texto-decoración-línea
texto-decoración-estilo
texto-decoración-saltar
Valores posibles
CSS
HTML
<p>
<span class="normal">Este es un ejemplo que muestra el efecto del "espaciado entre palabras".<br> <span
class="narrow">Este es un ejemplo que muestra el efecto de "espacio entre palabras".<br> <span class="extensive">Este
es un ejemplo que muestra el efecto del "espacio entre palabras".<br> </p>
Demostración en línea
Inténtalo tú mismo
Otras lecturas:
Atributos:
normal
letras minúsculas
Establece cada letra en mayúsculas, pero hace que las letras minúsculas (del texto original) sean más pequeñas que las letras que
originalmente estaban en mayúsculas.
CSS:
HTML:
<p class="smallcaps">
Documentación sobre fuentes CSS
Producción:
Nota: La propiedad font-variant es una forma abreviada de las propiedades: font-variant-caps, font-variant-numeric, font variant-alternates, font-variant-
ligatures y font-variant-east-asian.
CSS
.aligner
{ pantalla: flex;
alinear elementos: centro;
justificar-contenido: centro;
}
.elemento alineador
{ ancho máximo: 50%; /*para demostración. Utilice el ancho real en su lugar.*/
}
Razonamiento
Propiedad Valor Descripción
Centra los elementos a lo largo del eje que no sea el especificado por dirección flexible, es decir, centrado vertical
alinear elementos centro para un flexbox horizontal y centrado horizontal para un flexbox vertical.
Esto centra los elementos a lo largo del eje especificado por la dirección de flexión. Es decir, para
un centro de contenido justificado horizontal
vertical (dirección
(dirección flexible:
flexible: fila) flexbox,
columna) flexbox,esto
estose
secentra
centrahorizontalmente,
verticalmente) y para un flexbox
<div id="contenedor">
<div></div>
<div></div>
<div></div> </
div>
CSS:
div#contenedor
{ pantalla: flex;
dirección de flexión: fila;
justificar-contenido: centro;
}
Salir:
CSS:
div#contenedor
{ pantalla: flex;
dirección de flexión: columna;
justificar-contenido: centro;
}
Salir:
CSS:
div#contenedor
{ pantalla: flex;
dirección de flexión:
fila; alinear elementos: centro;
}
Salir:
CSS:
div#contenedor
{ pantalla: flex;
dirección de flexión:
columna; alinear elementos: centro;
}
Salir:
Salir:
Salir:
HTML:
<div class="encabezado">
<h2>Encabezado</h2> </
div>
<div clase="contenido">
<h1>Contenido</h1>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Entero nec odio. Praesent libero.
Sed cursus ante dapibus diam. Sed nisi. Nulla quis sem at nibh elementum imperdiet. Duis sagittis ipsum. Praesent mauris. Fusce nec tellus sed augue
sempre porta. mauri masa. Vestíbulo lacinia arcu eget nulla. Clase aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.
Curabitur sodales ligula en libero. </p> </div>
<h4>Pie de página</
h4> </div>
CSS:
html, cuerpo
{ altura: 100%;
}
cuerpo
{ pantalla: flexionar;
dirección de flexión: columna;
}
.content { /*
Incluye `0 auto` para una mejor compatibilidad con el navegador. */ flexible: 1
0 automático;
}
Demo en vivo.
HTML:
CSS:
.flex-container { color de
fondo: #000; altura: 100%;
pantalla:flex; dirección de
flexión: fila; envoltura flexible:
envoltura; justificar-contenido:
inicio flexible; alinear-contenido:
estirar; alinear elementos: estirar;
.flex-item { color
de fondo: #ccf; margen: 0,1 em;
crecimiento flexible: 1;
contracción flexible: 0;
Salir:
Marcado HTML:
</div>
CSS:
cuerpo
{ margen: 0;
relleno: 0;
}
.contenedor
{ pantalla: flex;
dirección de flexión: columna;
altura: 100vh;
}
.encabezado
{ flex: 0 0 50px;
.content-cuerpo { flex:
1 1 auto;
pantalla: flexible;
dirección de flexión: fila;
}
.pie de
página { flex: 0 0 50px;
}
Manifestación
Es un patrón regular en el diseño en estos días para alinear verticalmente las llamadas a la acción dentro de sus tarjetas contenedoras como esta:
HTML
<div clase="cartas">
<div clase="tarjeta">
<p>Lorem ipsum Magna proident ex anim dolor ullamco pariatur reprehenderit culpa esse enim
mollit labore dolore voluptate ullamco et ut sed qui minim.</p>
<p><button>Acción</button></p>
</div>
<div clase="tarjeta">
<p>Lorem ipsum Magna proident ex anim dolor ullamco pariatur reprehenderit culpa esse enim
mollit labore dolore voluptate ullamco et ut sed qui minim.</p>
<p>Lorem ipsum Magna proident ex anim dolor ullamco pariatur reprehenderit culpa esse enim
mollit labore dolore voluptate ullamco et ut sed qui minim.</p>
<p>Lorem ipsum Magna proident ex anim dolor ullamco pariatur reprehenderit culpa esse enim
mollit labore dolore voluptate ullamco et ut sed qui minim.</p>
<p>Lorem ipsum Magna proident ex anim dolor ullamco pariatur reprehenderit culpa esse enim
mollit labore dolore voluptate ullamco et ut sed qui minim.</p>
<p><button>Acción</button></p> </div> </div>
En primer lugar, usamos CSS para aplicar display: flex; al contenedor. Esto creará 2 columnas de igual altura con el contenido fluyendo naturalmente dentro de
ellas.
CSS
.tarjetas
{ pantalla: flex;
} .tarjeta
{ borde: 1px sólido #ccc; margen:
10px 10px; relleno: 0 20px;
} botón
{ altura: 40px;
fondo: #fff; relleno: 0
40px; borde: 1px sólido
#000;
Para mover los botones al final del bloque, necesitamos aplicar display: flex; a la propia tarjeta con la dirección establecida en columna. Después
de eso, debemos seleccionar el último elemento dentro de la tarjeta y establecer el margen superior en automático. Esto empujará el último párrafo al
final de la tarjeta y logrará el resultado requerido.
CSS final:
.tarjetas
{ pantalla: flex;
} .tarjeta
{ borde: 1px sólido #ccc; margen:
10px 10px; relleno: 0 20px;
pantalla: flexible; dirección de
flexión: columna;
} botón
{ altura: 40px;
fondo: #fff; relleno: 0
40px; borde: 1px sólido
#000;
Este efecto se logra debido a que la propiedad align-items está configurada para estirarse de forma predeterminada.
HTML
<div class="contenedor">
<div style="color-de-fondo: rojo">
Algunos <br />
datos <br />
para hacer<br />
CSS
.contenedor {
pantalla: flexible;
alinear elementos: estirar; // valor por defecto
}
C
selectores de tipo div, li
pseudo-elementos ::antes, ::primera-letra
#foo {
color: azul;
}
.bar
{ color: rojo;
fondo: negro;
}
Aquí tenemos un selector de ID que declara el color como azul y un selector de clase que declara el color como rojo y el fondo como negro.
Ambas declaraciones seleccionarán un elemento con un ID de #foo y una clase de .bar . Los selectores de ID tienen una especificidad de Grupo A y los
selectores de clase tienen una especificidad de Grupo B. Un selector de ID supera cualquier número de selectores de clase.
Debido a esto, color: azul; desde el selector #foo y el background:black; del selector .bar se aplicará al elemento. La mayor especificidad del
selector de ID hará que el navegador ignore la declaración de color del selector .bar .
.bar
{ color: rojo;
fondo: negro;
}
.baz
{ fondo: blanco;
}
Aquí tenemos dos selectores de clase; uno de los cuales declara el color como rojo y el fondo como negro, y el otro declara el fondo como
blanco.
Un elemento con las clases .bar y .baz se verá afectado por ambas declaraciones, sin embargo, el problema que tenemos ahora es que
tanto .bar como .baz tienen una especificidad de Grupo B idéntica . La naturaleza en cascada de CSS resuelve esto para nosotros: como .baz se define
después de .bar, nuestro elemento termina con el color rojo de .bar pero el fondo blanco de .baz.
El último fragmento del Ejemplo 2 anterior se puede manipular para garantizar que se use la declaración de color de nuestro selector de clase .bar en
lugar del selector de clase .baz .
La forma más común de lograr esto sería averiguar qué otros selectores se pueden aplicar a la secuencia del selector .bar . Por ejemplo, si la clase .bar
solo se aplicó alguna vez a los elementos span , podríamos modificar el selector .bar a span.bar . Esto le daría una nueva especificidad del Grupo C , que
anularía la falta de ella del selector .baz :
Sin embargo, no siempre es posible encontrar otro selector común que se comparta entre cualquier elemento que use la clase .bar . Por eso, CSS nos
permite duplicar selectores para aumentar la especificidad. En lugar de solo .bar, podemos usar .bar.bar en su lugar (consulte La gramática de los
selectores, recomendación W3C). Esto todavía selecciona cualquier elemento con una clase de .bar, pero ahora tiene el doble de especificidad del Grupo
B:
Se considera que el indicador !important en una declaración de estilo y los estilos declarados por el atributo de estilo HTML tienen una mayor
especificidad que cualquier selector. Si existen, la declaración de estilo a la que afectan prevalecerá sobre otras declaraciones independientemente de
su especificidad. Es decir, a menos que tenga más de una declaración que contenga un indicador importante para la misma propiedad que se aplica al
mismo elemento. Entonces, las reglas de especificidad normales se aplicarán a esas propiedades en referencia entre sí.
Debido a que anulan por completo la especificidad, el uso de !important está mal visto en la mayoría de los casos de uso. Uno
debe usarlo lo menos posible. Para mantener el código CSS eficiente y mantenible a largo plazo, casi siempre es mejor aumentar
la especificidad del selector circundante que usar !important.
Una de esas raras excepciones en las que !important no está mal visto, es cuando se implementan clases auxiliares genéricas como .hidden
o .background-yellow class que se supone que siempre anulan una o más propiedades dondequiera que se encuentren. E incluso entonces, necesitas
saber lo que estás haciendo. Lo último que desea, al escribir CSS mantenible, es tener indicadores importantes en todo su CSS.
Un concepto erróneo común sobre la especificidad de CSS es que los valores de los grupos A, B y c deben combinarse entre sí (a=1, b=5, c=1 =>
151). Este no es el caso. Si este fuera el caso, tener 20 de un selector del Grupo B o c sería suficiente para anular un solo selector del Grupo A o B
respectivamente. Los tres grupos deben considerarse como niveles individuales de especificidad. La especificidad no puede ser representada por un
solo valor.
Al crear su hoja de estilo CSS, debe mantener la menor especificidad posible. Si necesita hacer que la especificidad sea un poco más alta para
sobrescribir otro método, hágalo más alto pero lo más bajo posible para que sea más alto. No debería necesitar tener un selector como este:
Esto hace que los cambios futuros sean más difíciles y contamina esa página css.
#mydiv
{ font-weight: bold !important; / * Esta propiedad no será anulada por la
siguiente regla */
}
Se recomienda encarecidamente evitar el uso de !important (a menos que sea absolutamente necesario), ya que alterará el flujo natural de las reglas
css, lo que puede generar incertidumbre en su hoja de estilo. También es importante tener en cuenta que cuando se aplican varias declaraciones !
important a la misma regla sobre un elemento determinado, la que tenga la mayor especificidad será la que se aplique.
Estos son algunos ejemplos en los que se puede justificar el uso de la declaración !important :
Si sus reglas no deben ser anuladas por ningún estilo en línea del elemento que esté escrito dentro del atributo de estilo del elemento html.
Para darle al usuario más control sobre la accesibilidad web, como aumentar o disminuir el tamaño de la fuente, anulando el estilo del autor usando !
importante.
Ver también:
1. Hoja de estilo del agente de usuario (los estilos proporcionados por el proveedor del navegador)
2. Hoja de estilo del usuario (el estilo adicional que un usuario ha establecido en su navegador)
3. Hoja de estilo del autor (Autor aquí significa el creador de la página web/sitio web)
Cuando solo un conjunto de reglas CSS intenta establecer un estilo para un elemento, entonces no hay conflicto y se usa ese conjunto de reglas.
Cuando se encuentran varios conjuntos de reglas con configuraciones en conflicto, primero se usan las reglas de especificidad y luego las reglas en cascada
¿De qué color será el texto? (pase el cursor para ver la respuesta)
azul
Primero se aplican las reglas de especificidad, y el que tiene la especificidad más alta "gana".
.clase {
fondo: #FFF;
}
} <estilo>
En este caso, donde tiene selectores idénticos, la cascada se activa y determina que el último cargado "gana".
cuerpo > .mystyle { color de fondo: azul; } /* especificidad: 0, 0, 1, 1 */ .otherstyle > div { background-color:
red; } /* especificidad: 0, 0, 1, 1 */
rojo
Después de aplicar las reglas de especificidad, aún existe un conflicto entre el azul y el rojo, por lo que las reglas en cascada se aplican sobre las
reglas de especificidad. Cascading analiza el orden de carga de las reglas, ya sea dentro del mismo archivo .css o en la colección de fuentes de
estilo. El último cargado anula los anteriores. En este caso, la regla .otherstyle > div "gana".
#elmnt1
{ tamaño de fuente:
24px; borde-color: rojo;
}
<body class="miestilo">
<div id="elmnt1" class="myotherstyle"> ¡Hola, mundo! </
div> </cuerpo>
tamaño de fuente:
font-size: 24;, dado que el conjunto de reglas #elmnt1 tiene la mayor especificidad para el <div> en cuestión, aquí se
establecen todas las propiedades.
borde:
borde: 3px con puntos rojos;. El color del borde rojo se toma del conjunto de reglas #elmnt1 , ya que tiene la especificidad más alta.
Las otras propiedades del borde, grosor del borde y estilo del borde son de la regla div
establecer.
color de fondo:
color de fondo: verde;. El color de fondo se establece en los conjuntos de reglas div, body.mystyle > div.myotherstyle
y .mystyle .myotherstyle . Las especificidades son (0, 0, 1) frente a (0, 2, 2) frente a (0, 2, 0), por lo que el del medio "gana".
color:
color: rojo;. El color se establece en los conjuntos de reglas div y .mystyle .myotherstyle . Este último tiene la mayor especificidad de
(0, 2, 0) y "gana".
Aquí currentColor se evalúa como rojo ya que la propiedad de color está establecida en rojo:
div
{ color: rojo;
borde: 5px color actual sólido; caja-
sombra: 0 0 5px color actual;
}
En este caso, especificar currentColor para el borde probablemente sea redundante porque omitirlo debería producir resultados
idénticos. Solo use currentColor dentro de la propiedad de borde dentro del mismo elemento si se sobrescribiría debido a un selector
más específico.
Dado que es el color calculado, el borde será verde en el siguiente ejemplo debido a que la segunda regla anula la primera:
div
{ color: azul;
borde: 3px solid currentColor; color:
verde;
}
El color del padre se hereda, aquí currentColor se evalúa como 'azul', lo que hace que el color del borde del elemento secundario sea azul.
.parent-class
{ color: azul;
}
.clase-padre .clase-hijo {
color del borde: color actual;
}
currentColor también puede ser utilizado por otras reglas que normalmente no heredarían de la propiedad color, como background-
color. El siguiente ejemplo muestra a los niños usando el conjunto de colores en el padre como fondo:
.parent-class
{ color: azul;
}
.clase-padre .clase-hijo {
color de fondo: color actual;
}
Posible resultado:
La mayoría de los navegadores admiten el uso de palabras clave de color para especificar un color. Por ejemplo, para establecer el color de un elemento en azul,
.alguna-clase {
color: azul;
}
Las palabras clave de CSS no distinguen entre mayúsculas y minúsculas: azul, azul y AZUL darán como resultado #0000FF.
Agua #00FFFFrgb(0,255,255)
Aguamarina #7FFFD4rgb(127,255,212)
cian #00FFFFrgb(0,255,255)
IndioRojo #CD5C5Crgb(205,92,92)
CéspedVerde #7CFC00rgb(124,252,0)
limóngasa #FFFACDrgb(255,250,205)
Granate #800000rgb(128,0,0)
MedianaOrquídea #BA55D3rgb(186,85,211)
mentacrema #F5FFFArgb(245,255,250)
Aceituna #808000rgb(128,128,0)
Ciruela #DDA0DDrgb(221,160,221)
Tierra de siena
#A0522D rgb(160,82,45)
Nieve #FFFAFArgb(255,250,250)
Broncearse
#D2B48C rgb(210,180,140)
verde azulado
#008080 rgb(0,128,128)
Cardo #D8BFD8rgb(216,191,216)
Además de los colores nombrados, también existe la palabra clave transparente, que representa un negro completamente transparente:
rgba(0,0,0,0)
Los colores CSS también se pueden representar como un triplete hexadecimal, donde los miembros representan los componentes
rojo, verde y azul de un color. Cada uno de estos valores representa un número en el rango de 00 a FF, o de 0 a 255 en notación decimal.
Se pueden utilizar valores hexadecimales en mayúsculas y/o minúsculas (es decir , #3fc = #3FC = #33ffCC). El navegador interpreta #369
como #336699. Si eso no es lo que pretendía sino que quería #306090, debe especificarlo explícitamente.
El número total de colores que se pueden representar con notación hexadecimal es 256^3 o 16.777.216.
Sintaxis
.some-class { /*
Esto es equivalente a usar la palabra clave de color 'azul' */ color: #0000FF;
.also-blue { /* Si
desea especificar cada valor de rango con un solo número, ¡puede hacerlo!
Esto es equivalente a '#0000FF' (y 'azul') */ color: #00F;
notación hexadecimal se utiliza para especificar valores de color en el formato de color RGB, según los ' Valores numéricos de color'
del W3C .
Hay muchas herramientas disponibles en Internet para buscar valores de color hexadecimales (o simplemente hexadecimales).
Busque "paleta de colores hexadecimales" o "selector de colores hexadecimales" con su navegador web favorito para encontrar un montón de opciones.
Los valores hexadecimales siempre comienzan con un signo de libra (#), tienen hasta seis "dígitos" y no distinguen entre mayúsculas y
minúsculas: es decir, no les importan las mayúsculas. #FFC125 y #ffc125 son del mismo color.
.some-class { /*
Escalar RGB, equivalente a 'azul'*/ color: rgb(0, 0,
255);
}
.también-azul {
/ * Valores percentiles RGB*/ color:
rgb(0%, 0%, 100%);
}
Sintaxis
rgb(<rojo>, <verde>, <azul>)
Valor Descripción
<rojo> un número entero de 0 a 255 o un porcentaje de 0 a 100 %
<verde> un número entero de 0 a 255 o un porcentaje de 0 a 100 %
<azul> un número entero de 0 a 255 o un porcentaje de 0 a 100 %
.red { /
* Rojo opaco */
color: rgba(255, 0, 0, 1);
}
.red-50p {
/ * Rojo semitranslúcido. */ color:
rgba(255, 0, 0, .5);
}
Sintaxis
rgba(<rojo>, <verde>, <azul>, <alfa>);
Valor Descripción
<rojo> un número entero de 0 a 255 o un porcentaje de 0 a 100 %
<verde> un número entero de 0 a 255 o un porcentaje de 0 a 100 %
<azul> un número entero de 0 a 255 o un porcentaje de 0 a 100 % <
alfa> un número de 0 - 1, donde 0.0 es completamente transparente y 1.0 es completamente opaco
El tono se representa como un ángulo de 0° a 360° (sin unidades), mientras que la saturación y la luminosidad se representan como
porcentajes.
pag {
color: hsl (240, 100%, 50%); /* Azul */
}
Sintaxis
color: hsl(<tono>, <saturación>%, <luminosidad>%);
Valor Descripción
<tono> especificada en grados alrededor de la rueda de color (sin unidades), donde 0° es rojo, 60° es amarillo, 120° es verde, 180° es
cian, 240° es azul, 300° es magenta y 360° es rojo especificado en porcentaje donde el 0 % está completamente desaturado
Una saturación del 0% siempre produce un color en escala de grises; cambiar el tono no tiene ningún efecto.
Una luminosidad de 0% siempre produce negro y 100% siempre produce blanco; cambiar el tono o la saturación no tiene ningún efecto.
Sintaxis
<tono> especificado en grados alrededor de la rueda de color (sin unidades), donde 0° es rojo, 60° es amarillo, 120° es
verde, 180° es cian, 240° es azul, 300° es magenta y 360° es rojo
<saturación> porcentaje donde 0% está completamente desaturado (escala de grises) y 100% está completamente saturado (colores vivos)
Ejemplo de uso
<div estilo="opacidad:0.8;">
Este es un elemento parcialmente transparente </
div>
.transparent-element { /*
para IE 8 y 9 */ -ms-
filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=60)"; // IE8 /* también funciona en
IE 8 y 9, pero también en 5, 6, 7 */ filter: alpha(opacity=60); // IE 5-7 /* Navegadores modernos
*/ opacidad: 0.6;
mm milímetros
segundos1/72
(usado
de 1in)
paraptanimaciones
picas (1pc = y12 pt)
Una medida de distancia CSS es un número seguido inmediatamente por una unidad de longitud (px, em, pc, in, …)
Puede usar rem definido por el tamaño de fuente de su etiqueta html para diseñar elementos configurando su tamaño de fuente en un valor de rem y usar em dentro
del elemento para crear elementos que se escalan con su tamaño de fuente global.
HTML:
CSS relevante:
html
{ tamaño de fuente: 16px;
}
input[type="button"] { tamaño
de fuente: 1rem; relleno:
0.5em 2em;
}
entrada[tipo="rango"] { tamaño
de fuente: 1rem;
ancho: 10em;
}
entrada[tipo=texto]
{ tamaño de fuente:
1rem; relleno: 0,5 em;
}
Posible resultado:
em: Relativo al tamaño de fuente del padre. Esto provoca el problema de composición rem:
Relativo al tamaño de fuente del elemento raíz o <html> . Esto significa que es posible declarar un solo tamaño de fuente para el
elemento html y definir todas las unidades rem para que sean un porcentaje de eso.
El principal problema con el uso de rem para el tamaño de fuente es que los valores son algo difíciles de usar. Aquí hay un ejemplo de
algunos tamaños de fuente comunes expresados en unidades rem , asumiendo que el tamaño base es 16px:
10px = 0.625rem
12px = 0.75rem
14px = 0.875rem
16px = 1rem (base)
18px = 1.125rem 20px
= 1.25rem 24px =
1.5rem 30px = 1.875rem
32px = 2rem
CÓDIGO:
Versión ÿ 3
html
{ tamaño de fuente: 16px;
}
h1
{ tamaño de fuente: 2rem; / * 32 píxeles */
}
p
{ tamaño de fuente: 1rem; / * 16 píxeles */
}
li
{ tamaño de fuente: 1,5 em; / * 24 píxeles */
}
Sección 20.4: vh y vw
vh, que significa altura de la ventana gráfica es relativa al 1 % de la altura de la ventana gráfica vw,
que significa ancho de la ventana gráfica es relativo al 1 % del ancho de la ventana gráfica
Versión ÿ 3
div
{ ancho: 20vw;
altura: 20vh;
}
Arriba, el tamaño del div ocupa el 20 % del ancho y el alto de la ventana gráfica.
Ecuación:
*
(Ancho del contenedor principal) ( Porcentaje (%) ) = Salida
Por ejemplo:
En la salida, el ancho del Niño será la mitad (50%) del del Padre, que es 50px.
HTML
<div clase="padre">
PADRE
<div class="child">
NIÑO
</div>
</div>
CSS
<estilo>
*{ color: #CCC;
}
</estilo>
PRODUCCIÓN
Se utiliza para crear un fondo que oculta el documento subyacente de un elemento en la pila de la capa superior
::fondo
:: marcador de posición Le permite diseñar el texto del marcador de posición de un elemento de formulario (Experimental)
::marcador Para aplicar atributos de estilo de lista en un elemento determinado (Experimental) :: error
ortográfico Representa un segmento de texto que el navegador ha marcado como incorrectamente escrito (Experimental)
Los pseudoelementos, al igual que las pseudoclases, se agregan a los selectores de CSS, pero en lugar de describir un estado especial, le permiten
definir el alcance y el estilo de ciertas partes de un elemento html.
Por ejemplo, el pseudoelemento ::first-letter apunta solo a la primera letra de un elemento de bloque especificado por el selector.
El atributo de contenido es necesario para que se representen los pseudoelementos; sin embargo, el atributo puede tener un valor vacío (por ejemplo ,
contenido: "").
div::después
{ contenido: 'después';
color: rojo; borde: 1px
rojo sólido;
}
div
{ color: negro;
borde: 1px negro sólido; relleno:
1px;
}
div::antes
{ contenido: 'antes'; color:
verde; borde: 1px verde
sólido;
}
ul
{ tipo de estilo de lista: ninguno;
}
Luego agrega el estilo personalizado. En este ejemplo, crearemos cuadros de degradado para viñetas.
li:antes
{ contenido: "";
pantalla: bloque en línea;
margen derecho: 10px;
altura: 10px; ancho: 10px;
fondo: degradado lineal
(rojo, azul);
}
HTML
<ul>
<li>Prueba I</li>
<li>Prueba II</li>
</ul>
Resultado
Valor por defecto. Los elementos se representan en orden, tal como aparecen en el flujo del documento. Las propiedades top, right, bottom, left y
estático
z-index no se aplican.
El elemento se coloca en relación con su posición normal, por lo que left:20px agrega 20 píxeles a la posición IZQUIERDA del elemento. El
pariente
elemento se coloca en relación con la ventana del navegador.
fijado
absoluto El elemento se coloca en relación con su primer elemento antecesor posicionado (no estático)
inicial Establece esta propiedad en su valor predeterminado.
heredar Hereda esta propiedad de su elemento principal.
Característica experimental. Se comporta como position: static dentro de su padre hasta que se alcanza un umbral de
pegajoso
compensación dado, luego actúa como position: fixed.
desarmar
Combinación de inicial y herencia. Más información aquí.
Cuanto mayor sea el índice z, más arriba en el contexto de apilamiento (en el eje z) se coloca.
Ejemplo
En el siguiente ejemplo, un valor de índice z de 3 coloca el verde en la parte superior, un índice z de 2 coloca el rojo justo debajo y un índice z de 1 coloca el azul
debajo.
HTML
CSS
div
{ posición: absoluta; altura:
200px; ancho: 200px;
} div#div1
{ índice z: 1;
izquierda:
0px; arriba:
0px; color de fondo: azul;
} div#div2
{ índice z: 3;
izquierda:
100px; arriba:
100px; color de fondo: verde;
} div#div3
{ índice z: 2;
izquierda: 50px;
arriba: 150px;
color de fondo: rojo;
}
Sintaxis
Parámetro Detalles
número Un valor entero. Un número más alto es más alto en la pila del índice z . 0 es el valor predeterminado. Se permiten valores negativos.
Observaciones
Todos los elementos se disponen en un eje 3D en CSS, incluido un eje de profundidad, medido por la propiedad del índice z . z-index solo
funciona en elementos posicionados: (consulte: ¿Por qué z-index necesita una posición definida para funcionar?). El único valor donde se ignora es
el valor predeterminado, estático.
Lea sobre la propiedad z-index y los contextos de apilamiento en la especificación CSS en presentación en capas y en Mozilla Developer Network.
1. arriba
2. izquierda
3. derecho
4. fondo
especificar el elemento que debe aparecer en relación con su próximo elemento contenedor no estático.
.abspos{ posición:absoluta;
superior: 0px; izquierda:
500px;
}
Este código moverá el cuadro que contiene el elemento con el atributo class="abspos" hacia abajo 0px y hacia la derecha 500px en relación con su elemento
contenedor.
#stickyDiv
{ posición: fija; arriba:
10px; izquierda: 10px;
1. arriba
2. izquierda
3. derecha
4. abajo
se utilizan para indicar qué tan lejos mover el elemento desde donde habría estado en el flujo normal.
Este código moverá el cuadro que contiene el elemento con el atributo class="relpos" 20 px hacia abajo y 30 px hacia la derecha desde donde habría estado
en el flujo normal.
Esta palabra clave permite que el elemento use el comportamiento normal, es decir, se presenta en su posición actual en el flujo. Las
propiedades top, right, bottom, left y z-index no se aplican.
.element{ posición:estática;
bloquear Bloquear elemento, ocupar el 100% del ancho disponible, romper tras elemento. en línea Elemento
inline-block Tomando propiedades especiales tanto de elementos en línea como de bloque, sin interrupción, pero puede tener ancho.
inline-table El elemento se muestra como una tabla de nivel en línea. grid Se comporta
como un elemento de bloque y presenta su contenido de acuerdo con el modelo de cuadrícula. flex Se comporta como
un elemento de bloque y presenta su contenido de acuerdo con el modelo flexbox. heredar Hereda el valor del elemento
padre.
En línea
Un elemento en línea ocupa solo el ancho necesario. Se apila horizontalmente con otros elementos del mismo tipo y no puede contener otros elementos
que no estén en línea.
Como se demostró anteriormente, dos elementos en línea , <span> y <b>, están en línea (de ahí el nombre) y no rompen el
flujo del texto.
Bloquear
Un elemento de bloque ocupa el ancho máximo disponible de su elemento principal. Comienza con una nueva línea y, a diferencia de los elementos
en línea , no restringe el tipo de elementos que puede contener.
El elemento div está a nivel de bloque de forma predeterminada y, como se muestra arriba, los dos elementos de bloque están apilados verticalmente y, a
diferencia de los elementos en línea , el flujo del texto se interrumpe.
Bloque en línea
El valor de bloque en línea nos brinda lo mejor de ambos mundos: combina el elemento con el flujo del texto y nos permite usar relleno, margen, altura
y propiedades similares que no tienen un efecto visible en los elementos en línea .
Los elementos con este valor de visualización actúan como si fueran texto normal y, como resultado, se ven afectados por las reglas que controlan
el flujo de texto, como la alineación de texto. De forma predeterminada, también se reducen al tamaño más pequeño posible para acomodar su
contenido.
<ul>
<li>Primer Elemento </li>
<li>Segundo Elemento </li> <li>Tercer
Elemento </li> </ul>
<ul>
<li>Primer Elemento </li>
<li>Segundo Elemento </li> <li>Tercer
Elemento </li> </ul>
</estilo>
<ul>
<li>Primer Elemento </li>
<li>Segundo Elemento </li> <li>Tercer
Elemento </li> </ul>
ninguna
Por ejemplo, creemos un elemento div que tenga una identificación de myDiv:
<div id="miDiv"></div>
Esto ahora se puede marcar como no mostrado por la siguiente regla CSS:
#myDiv
{ pantalla: ninguno;
}
Cuando se ha configurado un elemento para que se muestre: ninguno; el navegador ignora todas las demás propiedades de
diseño para ese elemento específico (tanto posición como flotante). No se representará ningún cuadro para ese elemento y su existencia
en html no afecta la posición de los siguientes elementos.
Tenga en cuenta que esto es diferente de establecer la propiedad de visibilidad en oculta. Configuración de visibilidad: oculta; porque un
elemento no mostraría el elemento en la página, pero el elemento aún ocuparía el espacio en el proceso de representación como si fuera visible.
Por lo tanto, esto afectará la forma en que se muestran los siguientes elementos en la página.
El valor none para la propiedad de visualización se usa comúnmente junto con JavaScript para mostrar u ocultar elementos a voluntad,
eliminando la necesidad de eliminarlos y volver a crearlos.
<estilo>
tabla
{ ancho: 100%;
}
</estilo>
<tabla>
<tr>
<td>
soy una mesa
</td>
</tr> </
tabla>
<estilo> .table-div
{ pantalla: tabla;
} .tabla-fila-div { pantalla:
tabla-fila;
} .table-cell-div { pantalla:
table-cell;
} </estilo>
<div class="tabla-div">
<div class="tabla-fila-div">
<div class="table-cell-div">
Me comporto como una mesa ahora
</div>
</div>
</div>
manera fácil.
La cuadrícula CSS se define como una propiedad de visualización. Se aplica únicamente a un elemento principal y sus elementos secundarios inmediatos.
<sección clase="contenedor">
<div class="item1">item1</div> <div
class ="item2">item2</div> < div
class="item3">item3</ div> <div
class="item4">item4</ div> </sección>
La forma más fácil de definir la estructura de marcado anterior como una cuadrícula es simplemente establecer su propiedad de visualización en cuadrícula:
.container
{ pantalla: cuadrícula;
}
Sin embargo, hacer esto invariablemente hará que todos los elementos secundarios colapsen uno encima del otro. Esto se debe a que los niños actualmente no
Primero, debemos decirle al elemento de cuadrícula .container cuántas filas y columnas formarán su estructura y podemos hacerlo usando las propiedades grid-
.container
{ pantalla:
cuadrícula; columnas de cuadrícula:
50px 50px 50px; filas de cuadrícula: 50px 50px;
}
Sin embargo, eso todavía no nos ayuda mucho porque necesitamos dar un orden a cada elemento hijo. Podemos hacer esto especificando los valores de fila de
fila de cuadrícula: 2;
}
Al dar a cada artículo un valor de columna y fila, identifica el orden de los artículos dentro del contenedor.
Vea un ejemplo de trabajo en JSFiddle. Deberá ver esto en IE10, IE11 o Edge para que funcione, ya que estos son
actualmente los únicos navegadores que admiten el diseño de cuadrícula (con el prefijo del proveedor -ms-) o habilitar una bandera
en Chrome, Opera y Firefox según caniuse para probar con ellos.
A continuación, se muestra un ejemplo de dos tablas, ambas configuradas con ancho: 150px:
La tabla de la izquierda tiene table-layout: auto mientras que la de la derecha tiene table-layout: fixed. El primero es más ancho que el
ancho especificado (210 px en lugar de 150 px) pero el contenido encaja. Este último toma el ancho definido de 150px, sin importar si el
contenido se desborda o no.
Valor Descripción
auto Este es el valor predeterminado. Define el diseño de la tabla que será determinado por el contenido de sus celdas.
fijado Este valor establece que el diseño de la tabla esté determinado por la propiedad de ancho proporcionada a la tabla. Si el contenido de
una celda excede este ancho, la celda no cambiará de tamaño, sino que dejará que el contenido se desborde.
A continuación, un ejemplo con dos tablas con diferentes valores establecidos en la propiedad de celdas vacías :
La tabla de la izquierda tiene celdas vacías: mostrar mientras que la de la derecha tiene celdas vacías: ocultar. El primero muestra las
celdas vacías mientras que el segundo no.
Más información:
https://www.w3.org/TR/CSS21/tables.html#empty-cells https://
developer.mozilla.org/en-US/docs/Web/CSS/empty-cells http://codepen. io/
SitePoint/pen/yfhtq https://css-tricks.com/almanac/properties/e/empty-cells/
A continuación, un ejemplo de dos tablas con diferentes valores para la propiedad border-collapse :
La tabla de la izquierda tiene borde colapsado: separado mientras que la de la derecha tiene borde colapsado: colapsado.
Valor Descripción
separado Este es el valor predeterminado. Hace que los bordes de la mesa se separen entre sí.
colapsar Este valor establece que los bordes de la tabla se fusionen, en lugar de ser distintos.
A continuación, un ejemplo de dos tablas con diferentes valores para la propiedad border-spacing :
La tabla de la izquierda tiene un espaciado de borde: 2px (predeterminado) mientras que la de la derecha tiene un espaciado de borde: 8px.
Valor Descripción
<longitud> Este es el comportamiento predeterminado, aunque el valor exacto puede variar entre navegadores.
<longitud> <longitud> Esta sintaxis permite especificar valores horizontales y verticales separados respectivamente.
A continuación, un ejemplo con dos tablas con diferentes valores establecidos en la propiedad del lado del título :
La tabla de la izquierda tiene caption-side: top mientras que la de la derecha tiene caption-side: bottom.
Valor Descripción
top Este es el valor predeterminado. Coloca el título encima de la tabla.
La propiedad CSS específica cuyo cambio de valor debe cambiarse (o) todas, si es necesario cambiar todas las
propiedad de transición
propiedades transicionales.
duración de la transición La duración (o período) en segundos (s) o milisegundos (ms) durante los cuales debe tener lugar la
transición.
Una función que describe cómo se calculan los valores intermedios durante la transición. Los
valores comúnmente utilizados son facilidad, facilidad de entrada, facilidad de salida, facilidad de entrada,
lineal, función de tiempo de transición cubic-bezier(), pasos(). Puede encontrar más información sobre las diversas funciones de
temporización en las especificaciones del W3C.
La cantidad de tiempo que debe haber transcurrido antes de que pueda comenzar la transición. Se puede
transición-retraso
especificar en segundos (s) o milisegundos (ms)
} div:
hover{ color de fondo: verde;
}
HTML
<div></div>
Este ejemplo cambiará el color de fondo cuando se desplace el div, el cambio de color de fondo durará 1 segundo.
Estos parámetros se asignarán a puntos que forman parte de una curva de Bézier:
Para CSS Bézier Curves, P0 y P3 siempre están en el mismo lugar. P0 está en (0,0) y P3 está en (1,1), lo que significa que los
parámetros pasados a la función cubic-bezier solo pueden estar entre 0 y 1.
Si pasa parámetros que no están en este intervalo, la función tendrá una transición lineal predeterminada.
Dado que cubic-bezier es la transición más flexible en CSS, puede traducir todas las demás funciones de tiempo de transición
a funciones cubic-bezier:
div
{ altura: 100px;
ancho: 100px;
borde: 1px sólido;
propiedad de transición: alto, ancho;
transición-duración: 1s, 500ms; función
de temporización de transición: lineal;
transición-retardo: 0s, 1s;
} div: hover
{ altura: 200px;
ancho: 200px;
}
HTML
<div></div>
propiedad de transición: especifica las propiedades CSS para las que es el efecto de transición. En este caso, el div se expandirá
tanto horizontal como verticalmente cuando se desplace. transición-duración: especifica el tiempo que tarda en completarse una
transición. En el ejemplo anterior, las transiciones de alto y ancho tomarán 1 segundo y 500 milisegundos respectivamente. Transition-
timing-function: especifica la curva de velocidad del efecto de transición. Un valor lineal indica que la transición tendrá la misma
velocidad de principio a fin. transición-retraso: especifica la cantidad de tiempo necesario para esperar antes de que comience el
efecto de transición. En este caso, la altura comenzará a cambiar de inmediato, mientras que el ancho esperará 1 segundo.
Ya sea la propiedad CSS para la transición, o all, que especifica todos los transicionales
propiedad
propiedades.
duración Tiempo de transición, ya sea en segundos o milisegundos.
Especifica una función para definir cómo se calculan los valores intermedios de las propiedades.
función de temporización Los valores comunes son facilidad, lineal y paso a paso. Consulte la hoja de trucos de la función de aceleración para más.
demora Cantidad de tiempo, en segundos o milisegundos, que se debe esperar antes de reproducir la animación.
@fotogramas clave
Puede especificar un tiempo establecido con un valor porcentual o dos valores porcentuales, es decir
[ de | a | <porcentaje> ] 10%, 20%,
durante un período de tiempo en el que se establecen los atributos establecidos del fotograma clave.
Ejemplo básico
En este ejemplo, crearemos una animación de fondo básica que alterna entre todos los colores.
.RainbowBackground {
animación: arco iris-fondo 5s infinito;
}
Ver resultado
Hay algunas cosas diferentes a tener en cuenta aquí. Primero, la sintaxis actual de @keyframes .
@keyframes arcoiris-fondo{
Esta es la definición de un fotograma clave dentro de la animación. La primera parte, el 0% en el caso, define dónde está el
fotograma clave durante la animación. El 0% implica que es el 0% del tiempo total de animación desde el principio.
La animación cambiará automáticamente entre fotogramas clave. Por lo tanto, al establecer el siguiente color de fondo en 8,333 %, la
animación tardará suavemente el 8,333 % del tiempo en hacer la transición entre esos fotogramas clave.
.RainbowBackground
{ animación: rainbow-background 5s infinite;
}
Este código adjunta nuestra animación a todos los elementos que tienen la clase .RainbowBackground .
En este ejemplo particular, los fotogramas clave de 0 % y 100 % especifican { background-color: #ff0000; }. Siempre que dos o más fotogramas
clave compartan un estado, uno puede especificarlos en una sola declaración. En este caso, las dos líneas 0% y 100% podrían reemplazarse con
esta única línea:
Para navegadores antiguos basados en WebKit, deberá usar el prefijo del proveedor tanto en la declaración de @keyframes como en
la propiedad de animación , así:
@-webkit-keyframes{}
-webkit-animación: ...
Ejemplo
fondo: #ff0000;
}
Ver resultado
De forma predeterminada, al pasar el cursor sobre un elemento con la clase .Example , la altura del elemento cambiaría inmediatamente.
salta a 120px y su color de fondo a rojo (#ff0000).
Al agregar la propiedad de transición , podemos hacer que estos cambios ocurran con el tiempo:
.Ejemplo{
...
transición: todos los 400 ms de facilidad;
}
Ver resultado
El valor all aplica la transición a todas las propiedades compatibles (basadas en números). Cualquier nombre de propiedad compatible
(como altura o parte superior) se puede sustituir por esta palabra clave.
400ms especifica la cantidad de tiempo que toma la transición. En este caso, el cambio de altura del elemento tomará 400
milisegundos para completar.
Finalmente, el valor de facilidad es la función de animación, que determina cómo se reproduce la animación. facilidad significa empezar
lento, acelerar, luego terminar lento de nuevo. Otros valores son lineales, de salida y de entrada.
La propiedad de transición generalmente es compatible con todos los principales navegadores, excepto IE 9. Para versiones anteriores
de navegadores basados en Firefox y Webkit, use prefijos de proveedores como este:
.Ejemplo{
transición: todos los 400 ms de facilidad;
-moz-transition: todos los 400 ms de facilidad;
-webkit-transition: toda la facilidad de 400ms ;
}
Nota: La propiedad de transición puede animar cambios entre dos valores numéricos cualesquiera, independientemente de la unidad. Puede
también transición entre unidades, como 100px a 50vh. Sin embargo, no puede hacer la transición entre un número y un valor predeterminado.
Nuestro segundo ejemplo es un poco más simple y muestra que se pueden omitir algunas propiedades:
Nuestro tercer ejemplo muestra la declaración más mínima. Tenga en cuenta que el nombre de la animación y la duración de la animación
deben declararse:
animación: 3s en este
/* lado; duración | nombre */
También vale la pena mencionar que cuando se usa la abreviatura de animación, el orden de las propiedades marca la diferencia.
Evidentemente el navegador puede confundir tu duración con tu retraso.
Si la brevedad no es lo tuyo, también puedes omitir la propiedad abreviada y escribir cada propiedad individualmente:
animación-duración: 3s;
función de temporización de animación:
facilidad de entrada; animación-retraso: 1s;
número de iteraciones de animación: 2;
animación-dirección: inversa; modo de
relleno de animación: ambos; animación-
reproducir-estado: en pausa; nombre-
animación: slidein;
Tanto los fotogramas clave de CSS como la propiedad de transición utilizan la aceleración de GPU. El rendimiento aumenta al descargar los
cálculos a la GPU del dispositivo. Esto se hace mediante la creación de capas de pintura (partes de la página que se procesan individualmente)
que se descargan en la GPU para su cálculo. La propiedad will-change le dice al navegador qué se animará, lo que le permite crear áreas de
pintura más pequeñas, lo que aumenta el rendimiento.
La propiedad will-change acepta una lista de propiedades separadas por comas para ser animadas. Por ejemplo, si planea transformar un objeto
y cambiar su opacidad, debe especificar:
.Ejemplo{
...
voluntad-cambio: transformar, opacidad;
}
Nota: Use will-change con moderación. La configuración de cambio para cada elemento de una página puede causar problemas de
rendimiento, ya que el navegador puede intentar crear capas de pintura para cada elemento, lo que aumenta significativamente la cantidad de
procesamiento realizado por la GPU.
Mapeo de corte, o transvección, distorsionando cada punto de un elemento por un cierto ángulo en cada
sesgo (x, y)
dirección
Mapeo de corte horizontal distorsionando cada punto de un elemento por un cierto ángulo en la dirección
sesgarX(x)
horizontal
Mapeo de corte vertical distorsionando cada punto de un elemento por un cierto ángulo en la dirección vertical
sesgado Y (y)
El ángulo en el que se debe girar o sesgar el elemento (según la función con la que se utilice). El ángulo se
puede proporcionar en grados (deg), gradianes (grad), radianes (rad) o giros (turn). En la función skew() , el
ángulo
segundo ángulo es opcional. Si no se proporciona, no habrá (0) sesgo en el eje Y.
La distancia expresada como una longitud o un porcentaje por el cual el elemento debe traducirse en
longitud o porcentaje. En la habría
función(0)
translate()
traslación
, la
ensegunda
el eje Y.longitud o porcentaje es opcional. Si no se proporciona, entonces no
Un número que define cuántas veces se debe escalar el elemento en el eje especificado.
factor de escala En la función scale() , el segundo factor de escala es opcional. Si no se proporciona, el primer factor de escala
también se aplicará al eje Y.
<div clase="rotar"></div>
CSS
.rotar
{ ancho: 100px;
altura: 100px;
fondo: verde azulado;
transformar: rotar (45 grados);
}
Este ejemplo rotará el div 45 grados en el sentido de las agujas del reloj. El centro de rotación está en el centro del div, 50% desde la izquierda
y 50% desde arriba. Puede cambiar el centro de rotación configurando la propiedad transform-origin .
El ejemplo anterior establecerá el centro de rotación en el medio del extremo del lado derecho.
HTML
<div class="escala"></div>
CSS
.escala
{ ancho: 100px;
altura: 100px; fondo:
verde azulado;
transformar: escala (0.5, 1.3);
}
Este ejemplo escalará el div a 100 px * 0,5 = 50 px en el eje X y a 100 px * 1,3 = 130 px en el eje Y.
El centro de la transformación está en el centro del div, 50 % desde la izquierda y 50 % desde arriba.
HTML
<div class="sesgo"></div>
CSS
.sesgo
{ ancho: 100px;
altura: 100px; fondo:
verde azulado;
transformar: sesgar (20 grados, -30 grados);
}
Esto rotará el elemento 15 grados en el sentido de las agujas del reloj y luego lo trasladará 200px a la derecha.
En las transformaciones encadenadas, el sistema de coordenadas se mueve con el elemento. Esto significa que la traslación no será horizontal
sino que en un eje rotará 15 grados en el sentido de las agujas del reloj como se muestra en la siguiente imagen:
Cambiar el orden de las transformaciones cambiará la salida. El primer ejemplo será diferente a
.transformar
{ transformar: rotar (15 grados) traducirX (200px);
}
<div class="traducir"></div>
CSS
.translate
{ ancho: 100px;
altura: 100px;
fondo: verde azulado;
transformar: traducir (200px, 50%);
En el eje X:
.translate
{ transformar: translateX(200px);
}
En el eje Y:
.traducir {
transformar: traducir Y (50%);
}
En el siguiente ejemplo, el primer div (.tl) gira alrededor de la esquina superior izquierda con transform-origin: 0 0; y el segundo (.tr) se transforma
alrededor de su esquina superior derecha con transform-origin: 100% 0. La rotación se aplica al pasar el mouse :
HTML:
CSS:
.transform
{ pantalla: bloque en línea;
ancho: 200px; altura: 100px;
fondo: verde azulado;
transición: transformar 1s;
.origin1
{ transformar-origen: 0 0;
}
.origin2
{ transformar-origen: 100% 0;
}
.transformar: hover
{ transformar: rotar (30 grados);
}
El valor predeterminado para la propiedad transform-origin es 50% 50% , que es el centro del elemento.
CSS
div.aguja { margen:
100px; altura: 150px;
ancho: 150px;
transformar: rotar Y
(85 grados) rotar Z (45 grados); /* presentación */ background-
image: linear-gradient( arriba a la izquierda, #555 0%, #555
40%, #444 50%, #333 97%); box-shadow: recuadro 6px 6px 22px 8px #272727;
HTML
<div class='aguja'></div>
En el ejemplo anterior, se crea una forma de puntero de aguja o brújula mediante transformaciones 3D. Generalmente, cuando aplicamos la
transformación de rotación en un elemento, la rotación ocurre solo en el eje Z y, en el mejor de los casos, terminaremos solo con formas de
diamante. Pero cuando se agrega una transformación de rotación Y encima, el elemento se aprieta en el eje Y y, por lo tanto, termina
pareciéndose a una aguja. Cuanto mayor es la rotación del eje Y, más apretado se ve el elemento.
El resultado del ejemplo anterior sería una aguja apoyada en su punta. Para crear una aguja que descanse sobre su base, la rotación debe ser a lo
largo del eje X en lugar de a lo largo del eje Y. Por lo tanto , el valor de la propiedad de transformación tendría que ser algo como "rotateX(85deg)
"rotateZ(45deg);".
Este bolígrafo utiliza un enfoque similar para crear algo que se asemeje al logotipo de Safari o al dial de una brújula.
<div id="título">
<h1 contenido de datos="HOVER">HOVER</h1>
</div>
CSS:
*{margin:0;padding:0;}
html,body{height:100%;width:100%;overflow:hidden;background:#0099CC;}
#title{ position:absolute; arriba: 50%; izquierda: 50%; transformar: traducir (-50%, -50%);
perspectiva-origen: 50% 50%; perspectiva: 300px;
}
h1{ texto-alinear:centro;
tamaño de fuente:
12vmin; familia de fuentes: 'Open Sans', sans-
serif; color:rgba(0,0,0,0.8); altura de línea: 1em;
transformar: rotar Y (50 grados); perspectiva:
150px; perspectiva-origen:0% 50%;
}
h1:después{ content:attr(datos-contenido);
posición:absoluta; izquierda:0;superior:0;
transformar-origen: 50% 100%;
transformar: rotar X (-90 grados);
color:#0099CC;
#título:antes{ contenido:'';
posición:absoluta; arriba:-150%;
izquierda:-25%; ancho: 180%;
altura: 328%; fondo:rgba(255,255,255,0.7);
transformar-origen: 0 100%; transformar:
traducir (-200 px) rotar (40 grados) sesgar X (35 grados); borde-radio:0 0 100% 0;
En este ejemplo, el texto se transforma para que parezca que va a la pantalla lejos del usuario.
La sombra se transforma en consecuencia para que siga el texto. Como está hecho con un pseudo elemento y el atributo de datos ,
hereda las transformaciones de su padre (la etiqueta H1).
La "luz" blanca está hecha con un pseudo elemento en el elemento #title . Está sesgado y usa border-radius para la esquina redondeada.
Con las transformaciones 3D y la propiedad backface-visibility , puede rotar un elemento de modo que el frente original de un elemento ya
no mire hacia la pantalla.
JSFDDLE
.flip { -
webkit-transform: rotar Y (180 grados);
-transformar moz : rotar Y (180 grados); -ms-
transformar: rotar Y (180 grados); -webkit-
backface-visibilidad: visible; -moz-backface-
visibilidad: visible; -ms-backface-visibilidad:
visible;
.flip.back { -
webkit-backface-visibility: oculto; -moz-
backface-visibility: oculto; -ms-backface-
visibilidad: oculto;
}
Firefox 10+ e IE 10+ admiten la visibilidad de la cara posterior sin un prefijo. Opera, Chrome, Safari, iOS y Android necesitan -webkit-backface-visibility.
Tiene 4 valores:
1. visible (predeterminado): el elemento siempre estará visible incluso cuando no esté frente a la pantalla. 2.
oculto : el elemento no es visible cuando no está frente a la pantalla. 3. heredar : la propiedad obtendrá su valor
de su elemento principal 4. initial : establece la propiedad en su valor predeterminado, que es visible
HTML:
<div clase="cubo">
<div clase="caracubo"></div> <div
clase="caracubo cara2"></div>
</div>
CSS:
cuerpo
{ perspectiva-origen: 50% 100%;
perspectiva: 1500px;
desbordamiento: oculto;
} .cube
{ posición: relativa;
fondo acolchado: 20%;
estilo de transformación:
preserve-3d; transforma-origen:
50% 100%; transformar: rotar Y (45 grados) rotar X (0);
} .caracubo {
posición: absoluta;
superior: 0; izquierda:
40%; ancho: 20%; altura:
100%; margen: 0 automático;
estilo de transformación:
heredar; fondo: #C52329;
sombra de caja: recuadro 0 0 0 5px
#333; transforma-origen: 50% 50%;
transformar: rotarX(90grados); visibilidad de la
cara posterior: oculta;
} .face2
{ transformar-origen: 50% 50%;
transformar: rotar (90 grados) traducir X (100%) rotar Y (90 grados);
} .cubeFace:antes, .cubeFace:después {
contenido: '';
posición: absoluta; ancho:
100%; altura: 100%;
transformar-origen: 0 0;
fondo: heredar; box-shadow:
heredar; backface-visibilidad:
heredar;
} .cubeFace:antes { arriba:
100%; izquierda: 0;
transformar: rotarX
(-90 grados);
} .cubeFace:después
{ arriba: 0; izquierda:
100%; transformar:
rotar Y (90 grados);
}
Ilumina la imagen en cualquier valor por encima de 1,0 o 100%. Debajo de eso, la imagen será
brillo(x) oscurecido
Brinda más contraste a la imagen en cualquier valor por encima de 1.0 o 100%. Debajo de eso, el
contraste(x)
la imagen se saturará menos.
drop-shadow(h, v, x, y, z) Da a la imagen una sombra paralela. h y v pueden tener valores negativos. x, y y z son opcionales.
escala de grises Muestra la imagen en escala de grises, con un valor máximo de 1,0 o 100%.
(x) rotación de tono (x) Aplica una rotación de tono a la imagen.
invertir(x) Invierte el color de la imagen con un valor máximo de 1,0 o 100%.
opacidad(x) Establece cuán opaca/transparente es la imagen con un valor máximo de 1.0 o 100%.
Satura la imagen en cualquier valor por encima de 1,0 o 100%. Debajo de eso, la imagen comenzará a
saturar(x)
desaturar.
HTML
CSS
imagen {
-filtro webkit: desenfoque (1px);
filtro: desenfoque (1px);
}
Resultado
posible)
HTML
CSS
pag {
-webkit-filter: sombra paralela (10px 10px 1px verde); filtro:
sombra paralela (10px 10px 1px verde);
}
Resultado
CSS
img { -
webkit-filter: hue-rotate(120deg); filtro: matiz-
rotar (120 grados);
}
Resultado
HTML
CSS
img { -
webkit-filter: brillo (200 %) escala de grises (100 %) sepia (100 %) invertir (100 %); filtro: brillo (200 %) escala
de grises (100 %) sepia (100 %) invertir (100 %);
}
Resultado
<div></div>
CSS
div
{ ancho: 100px;
altura: 100px; color
de fondo: blanco; -filtro webkit:
invertir (100%); filtro: invertir (100%);
Resultado
Ejemplos:
Valor Descripción
ninguno No se representa ningún cursor para el elemento
enlace
.deshabilitado {
puntero-eventos: ninguno;
}
En este ejemplo,
'ninguno' evita todas las opciones de clic, estado y cursor en el elemento HTML especificado [[1]]
auto;
heredar.
1. https://css-tricks.com/almanac/properties/p/pointer-events/
Otros recursos:
https://developer.mozilla.org/en-US/docs/Web/CSS/pointer-events
https://davidwalsh.name/pointer-events
La propiedad CSS caret-color especifica el color del símbolo de intercalación, el indicador visible del punto de inserción en un elemento
donde el texto y otro contenido se insertan mediante la escritura o la edición del usuario.
HTML
CSS
#ejemplo
{ color de intercalación: rojo;
}
Recursos:
https://developer.mozilla.org/en-US/docs/Web/CSS/caret-color
recuadro
de forma predeterminada, la sombra se trata como una sombra paralela. la palabra clave inserta dibuja la sombra dentro del
marco/borde.
desplazamiento-y
la distancia vertical
radio de desenfoque
0 por defecto. El valor no puede ser negativo. cuanto mayor sea el valor, más grande y clara se vuelve la sombra.
0 por defecto. los valores positivos harán que la sombra se expanda. los valores negativos harán que el radio de propagación de
la sombra se reduzca.
color puede tener varias notaciones: una palabra clave de color, hexadecimal, rgb(), rgba(), hsl(), hsla()
HTML
<div class="box_shadow"></div>
CSS
.caja_sombra {
color de fondo: #1C90F3; ancho:
200px; altura: 100px; margen:
50px;
.box_shadow:después de
{ contenido: ""; ancho:
190px; altura: 1px;
margen superior:
98px; margen
izquierdo: 5px;
pantalla: bloque;
posición: absoluta;
índice z: -1; -webkit-caja-
sombra: 0px 0px 8px 2px #444444; -moz-caja-sombra: 0px
0px 8px 2px #444444; sombra de cuadro: 0px 0px 8px
2px #444444;
}
HTML
<div class="box_shadow"></div>
CSS
.box_shadow { -
webkit-caja-sombra: 0px 0px 10px -1px #444444; -moz-caja-
sombra: 0px 0px 10px -1px #444444; sombra de caja: 0px
0px 10px -1px #444444;
}
<div class="box_shadow"></div>
CSS
.caja_sombra {
color de fondo: #1C90F3; ancho:
200px; altura: 100px; margen:
50px; -webkit-box-shadow: recuadro
0px 0px 10px 0px #444444; -moz-
box-shadow: inserción 0px 0px 10px 0px #444444; box-shadow:
recuadro 0px 0px 10px 0px #444444;
Resultado:
JSFiddle: https://jsfiddle.net/UnsungHero97/80qod7aL/1/
JSFiddle: https://jsfiddle.net/UnsungHero97/80qod7aL/5/
HTML
<div class="box_shadow"></div>
CSS
.caja_sombra {
ancho: 100px;
altura: 100px;
margen: 100px;
sombra de la caja:
-52px -52px 0px 0px #f65314, 52px
-52px 0px 0px #7cbb00, -52px 52px
0px 0px #00a1f1, 52px 52px 0px 0px
#ffbb00;
}
ninguna
Un valor de ninguno significa que el área flotante (el área que se usa para envolver contenido alrededor de un elemento flotante)
no se ve afectada. Este es el valor predeterminado/inicial.
Se refiere a uno entre recuadro(), círculo(), elipse() o polígono(). Usando una de estas funciones y sus valores básicos
de forma, se define la forma.
Se refiere a uno entre margin-box, border-box, padding-box, content-box. Cuando solo se proporciona <shape-box> (sin <basic-
caja de forma shape>), este cuadro es la forma. Cuando se usa junto con <basic-shape>, actúa como cuadro de referencia.
Cuando se proporciona una imagen como valor, la forma se calcula en función del canal alfa de la imagen especificada.
imagen
CSS
img:nth-of-type(1) {
forma exterior: círculo (80px al 50% 50%);
flotador: izquierda; ancho: 200px;
} img:nth-of-type(2) {
forma exterior: círculo (80px al 50% 50%);
flotador: derecho; ancho: 200px;
}p
{ texto-alinear: centro;
altura de línea: 30px; /* puramente para demostración */
}
HTML
En el ejemplo anterior, ambas imágenes son en realidad imágenes cuadradas y cuando el texto se coloca sin la propiedad de forma exterior , no
fluirá alrededor del círculo en ninguno de los lados. Fluirá alrededor del cuadro contenedor de la imagen solamente. Con shape-outside, el área flotante
se redefine como un círculo y se hace que el contenido fluya alrededor de este círculo imaginario que se crea usando shape-outside.
El círculo imaginario que se usa para redefinir el área flotante es un círculo con un radio de 80 px dibujado desde el punto medio central del cuadro
de referencia de la imagen.
A continuación hay un par de capturas de pantalla para ilustrar cómo se envolvería el contenido cuando se usa la forma externa y cuando no se usa.
CSS
img:nth-of-type(1) {
forma exterior: círculo (80px al 50% 50%); margen
de forma: 10px; flotador: izquierda; ancho: 200px;
} img:nth-of-type(2) {
forma exterior: círculo (80px al 50% 50%); margen
de forma: 10px; flotador: derecha; ancho: 200px;
}p
{ texto-alinear: centro;
altura de línea: 30px; /* puramente para demostración */
}
HTML
En este ejemplo, se agrega un margen de 10 px alrededor de la forma usando el margen de forma. Esto crea un poco más de espacio entre el
círculo imaginario que define el área flotante y el contenido real que fluye.
Producción:
Una lista consta de elementos <li> dentro de un elemento contenedor (<ul> o <ol>). Tanto los elementos de la lista como el contenedor pueden tener
márgenes y rellenos que influyen en la posición exacta del contenido del elemento de la lista en el documento. Los valores predeterminados para el margen
y el relleno pueden ser diferentes para cada navegador. Para obtener el mismo diseño en todos los navegadores, estos deben configurarse específicamente.
Cada elemento de la lista obtiene un 'cuadro de marcador', que contiene el marcador de viñeta. Este cuadro se puede colocar dentro o fuera del cuadro del
elemento de lista.
posición-estilo-lista: dentro;
coloca la viñeta dentro del elemento <li> , empujando el contenido hacia la derecha según sea necesario.
posición-estilo-lista: fuera;
coloca la viñeta a la izquierda del elemento <li> . Si no hay suficiente espacio en el relleno del elemento contenedor, el cuadro de marcador se extenderá
hacia la izquierda incluso si se cae de la página.
<ul>
<li>primer elemento</li>
<li>segundo elemento</li>
</ul>
CSS
ul
{ tipo de estilo de lista: ninguno;
} li
{ margen: 0;
relleno: 0;
}
No específico:
contranombre Este es el nombre del contador que debe crearse, incrementarse o imprimirse. Puede ser cualquier nombre personalizado
que desee el desarrollador.
Este entero es un valor opcional que, cuando se proporciona junto al nombre del contador, representará el valor
entero inicial del contador (en las propiedades de configuración de contador, restablecimiento de contador ) o el valor por
el cual se debe incrementar el contador (en incremento de contador).
Este es el valor inicial para las 3 propiedades contador-* . Cuando este valor se utiliza para el incremento del
ninguna contador, el valor de ninguno de los contadores se ve afectado. Cuando se usa para los otros dos, no se crea ningún
contador.
Esto especifica el estilo en el que se debe mostrar el valor del contador. Admite todos los valores admitidos por la
contra-estilo propiedad list-style-type . Si no se utiliza ninguno, el valor del contador no se imprime en absoluto.
Esto representa la cadena que debe colocarse entre los valores de dos niveles de contador diferentes conector-cadena
(como el "." en "2.1.1").
cuerpo
{ contador-restablecer: elemento-contador;
}
.item
{ contador-incremento: item-counter;
}
.item:antes de {
content: counter(item-counter, upper-roman) ". "; /* al especificar el estilo romano superior como estilo, la salida sería en números
romanos */ }
HTML
<div class='item'> Número de artículo: 1</div>
<div class='item'> Número de artículo: 2</div>
<div class='item'> Número de artículo: 3</div>
En el ejemplo anterior, la salida del contador se mostraría como I, II, III (números romanos) en lugar de los habituales 1, 2, 3, ya que el
desarrollador especificó explícitamente el estilo del contador.
cuerpo
{ contador-restablecer: elemento-contador; /* crea el contador */
} .item
{ contador-incremento: item-counter; /* incrementa el contador cada vez que un elemento con clase "item"
se encuentra */ } .item-
header:before {
contenido: contador(elemento-contador) ". "; /* imprime el valor del contador antes del encabezado y
agregar un "." a eso */ }
.item
{ borde: 1px sólido; altura:
100px; margen inferior:
10px;
} .item-header
{ borde inferior: 1px sólido; altura:
40px; altura de línea: 40px; relleno:
5px;
} .elemento-contenido
{ relleno: 8px;
}
HTML
<div class='elemento'>
<div class='item-header'>Encabezado del artículo 1 </div> <div
class='item-content'>Lorem Ipsum Dolor Sit Amet....</div> </div> <div class='item '> <div
class='item-header'>Encabezado del artículo 2 </div> <div class='item-content'>Lorem Ipsum
Dolor Sit Amet....</div>
</div>
<div class='item'> <div
class='item-header'>Encabezado del artículo 3 </div> <div
class='item-content'>Lorem Ipsum Dolor Sit Amet....</ div>
</div>
El ejemplo anterior enumera cada "elemento" en la página y agrega el número del elemento antes de su encabezado (usando la propiedad de
contenido del elemento .item-header :before pseudo). Una demostración en vivo de este código está disponible aquí.
ul
{ estilo de lista: ninguno;
contador-restablecimiento: lista-elemento-número; /* el contador de anidamiento automático ya que el nombre es el mismo para todos los niveles */
} li
{ contador-incremento: lista-elemento-número;
} li:before
{ content: counters(list-item-number, ".") " "; /* el uso de la función counters() significa el valor de
los contadores en todos los niveles superiores se combinan antes de imprimir */ }
HTML
<ul>
<li>Nivel 1 <ul>
<li>Nivel 1.1
<ul>
<li>Nivel 1.1.1</li> </ul> </
li> </ul>
</li>
<li>Nivel 2 <ul>
<li>Nivel 2.1
<ul>
<li>Nivel 2.1.1</li> <li>Nivel
2.1.2</li> </ul> </li> </ul> </
li> <li>Nivel 3</li> </ul>
Lo anterior es un ejemplo de numeración multinivel usando contadores CSS. Hace uso del concepto de anidamiento automático de los
contadores. El anidamiento automático es un concepto en el que si un elemento ya tiene un contador con el nombre dado pero tiene que
crear otro, lo crea como un elemento secundario del contador existente. Aquí, el segundo nivel ul ya hereda el contador de número de
elemento de lista de su padre, pero luego tiene que crear su propio número de elemento de lista (para sus hijos li) y, por lo tanto, crea el
número de elemento de lista [1] (contador para segundo nivel) y lo anida bajo list-item-number[0] (contador para primer nivel). Por lo tanto,
logra la numeración de varios niveles.
La salida se imprime utilizando la función counters() en lugar de la función counter() porque la función counters() está diseñada para
prefijar el valor de todos los contadores de nivel superior (principal) al imprimir la salida.
Es especialmente útil cuando se trabaja con diferentes tipos de unidades (p. ej. restando un valor de px de un porcentaje) para calcular
el valor de un atributo.
Se pueden usar los operadores +, -, / y * , y se pueden agregar paréntesis para especificar el orden de las operaciones si
necesario.
#div1
{ posición: absoluta;
izquierda: 50px; ancho:
calc(100% - 100px); borde: 1px
negro sólido; color de fondo:
amarillo; relleno: 5px; alineación
de texto: centro;
A continuación se muestra un elemento blockquote que contiene un carácter dentro de un atributo data-* que CSS puede usar (por
ejemplo, dentro del pseudoelemento ::before y ::after ) usando esta función.
<blockquote data-mark='"'></blockquote>
En el siguiente bloque CSS, el carácter se agrega antes y después del texto dentro del elemento:
blockquote[data-mark]::antes,
blockquote[data-mark]::after { content:
attr(data-mark);
}
Esta característica esta actualmente en desarrollo. Visita caniuse.com para obtener la compatibilidad con el navegador más reciente.
radial-gradiente(rojo, naranja, amarillo) /*Un degradado que sale del medio del degradado, rojo en el centro, luego naranja,
hasta que finalmente es amarillo en los bordes*/
Esto crea un degradado que va de abajo hacia arriba, con colores que comienzan en rojo, luego en amarillo al 50 % y terminan en azul.
Por ejemplo, es común en CSS reutilizar un solo color en un documento. Antes de las variables CSS, esto significaba reutilizar el mismo valor de color
muchas veces en un documento. Con las variables CSS, el valor del color se puede asignar a una variable y hacer referencia en varios lugares. Esto facilita el
}
.Bx1
{ color: var(--rojo); fondo:
var(--gris); borde: 1px solid var(--
red);
}
Puede definir variables varias veces y solo la definición con la mayor especificidad se aplicará al elemento seleccionado.
.botón { --
color: verde;
acolchado: 0,5 rem;
borde: 1px var sólido (--color); color: var(--
color);
}
.button: hover { --
color: azul;
}
.boton_rojo {
--color: rojo;
}
--Pcolor: ; --
pColor: ;
/ * Inválido */ --
color:;
/ * Válido */ --
color: ; /* se asigna espacio */
concatenaciones
/ * Inválido */ --
ancho: 10; ancho:
var(--ancho)px;
/ * Válido */ --
width: 10px; ancho:
var(--ancho);
/ * Válido */ --
ancho: 10;
ancho: calc(1px * var(--ancho)); /* multiplicar por 1 unidad para convertir */ ancho: calc(1em * var(--
ancho));
Aquí, una consulta de medios cambia las variables utilizadas para configurar una cuadrícula muy simple:
HTML
<div></div>
<div></div>
<div></div>
<div></div>
CSS
:raíz{ --
ancho: 25%; --
content: 'Esto es escritorio';
}
}
} div:antes{
contenido: var(--contenido);
Aquí hay una captura de pantalla animada del cambio de tamaño en acción:
HTML:
<div class="trapezoidal"></div>
CSS:
.trapezoidal
{ ancho: 50px;
altura: 0;
borde izquierdo: 50px sólido transparente;
borde derecho: 50px sólido transparente; borde
inferior: 100 px negro sólido ;
}
Al cambiar los lados del borde, se puede ajustar la orientación del trapezoide.
Al establecer algunos bordes en transparentes y otros en un color, podemos crear varios triángulos. Por ejemplo, en el triángulo hacia
arriba, establecemos el borde inferior en el color deseado, luego establecemos los bordes izquierdo y derecho en transparentes. Aquí hay
una imagen con los bordes izquierdo y derecho ligeramente sombreados para mostrar cómo se forma el triángulo.
Las dimensiones del triángulo se pueden modificar cambiando los diferentes anchos de los bordes: más alto, más corto, torcido, etc.
<div class="triángulo-arriba"></div>
.triángulo arriba
{ ancho: 0;
altura: 0; borde
izquierdo: 25px sólido transparente; borde
derecho: 25px sólido transparente; borde
inferior: 50px rgb sólido (246, 156, 85);
}
<div class="triángulo-abajo"></div>
.triángulo hacia
abajo { ancho: 0;
altura: 0; borde
izquierdo: 25px sólido transparente; borde
derecho: 25px sólido transparente; borde
superior: 50px rgb sólido (246, 156, 85);
}
<div class="triángulo-derecho"></div>
.triángulo-derecho
{ ancho: 0; altura: 0;
borde superior: 25px
sólido transparente; borde inferior: 25px sólido
transparente; borde izquierdo: 50px rgb sólido (246,
156, 85);
}
<div class="triángulo-izquierda"></div>
.triángulo-izquierda
{ ancho: 0; altura: 0;
borde superior:
25px sólido transparente; borde inferior: 25px
sólido transparente; borde derecho: 50px rgb sólido
(246, 156, 85);
}
<div class="triángulo-arriba-a-la-derecha"></div>
<div class="triángulo-arriba-izquierda"></div>
.triángulo-arriba-izquierda {
ancho: 0;
altura: 0;
borde superior: 50px rgb sólido (246, 156, 85); borde
derecho: 50px sólido transparente;
}
<div class="triángulo-abajo-derecha"></div>
.triángulo-abajo-derecha { ancho:
0; altura: 0; borde inferior:
50px rgb sólido (246, 156,
85); borde izquierdo: 50px sólido transparente;
<div class="triángulo-abajo-izquierda"></div>
.triángulo-abajo-izquierda
{ ancho: 0; altura: 0; borde
inferior: 50px rgb sólido
(246, 156, 85); borde derecho: 50px sólido transparente;
Para crear un círculo, defina un elemento con el mismo ancho y alto (un cuadrado) y luego establezca la propiedad border-radius de este elemento en
50%.
HTML
<div clase="círculo"></div>
CSS
.círculo
{ ancho: 50px;
altura: 50px;
fondo: rgb (246, 156, 85); borde-radio: 50%;
Elipse
Una elipse es similar a un círculo, pero con diferentes valores de ancho y alto.
HTML
<div class="oval"></div>
CSS
.oval
{ ancho: 50px;
altura: 80px;
fondo: rgb (246, 156, 85); borde-radio: 50%;
Un estallido es similar a una estrella pero con las puntas extendiéndose a menos distancia del cuerpo. Piense en una forma de explosión como un
cuadrado con cuadrados adicionales, ligeramente rotados, en capas en la parte superior.
Ráfaga de 8 puntos
Una explosión de 8 puntos son cuadrados de 2 capas. El cuadrado inferior es el elemento en sí, el cuadrado adicional se crea usando el pseudo-
elemento :before . La parte inferior se gira 20°, el cuadrado superior se gira 135°.
<div class="burst-8"></div>
.burst-8
{ fondo: rgb(246, 156, 85); ancho: 40px;
altura: 40px;
posición: relativa; alineación
de texto: centro; -ms-
transform: rotar (20 grados); transformar:
rotar (20eg);
}
.burst-8::before { contenido:
""; posición: absoluta;
superior: 0; izquierda: 0;
altura: 40px; ancho: 40px;
fondo: rgb (246, 156, 85);
-ms-transform: rotar (135
grados); transformar: rotar
(135 grados);
Ráfaga de 12 puntos
Una explosión de 12 puntos son cuadrados de 3 capas. El cuadrado inferior es el elemento en sí, los cuadrados adicionales se crean usando los pseudo-
elementos :before y :after . La parte inferior se gira 0°, el siguiente cuadrado se gira 30° y la parte superior se gira 60°.
<div class="burst-12"></div>
.burst-12
{ ancho: 40px;
altura: 40px;
posición: relativa; alineación
de texto: centro; fondo: rgb
(246, 156, 85);
}
.ráfaga-12::antes, .ráfaga-12::después {
contenido: "";
posición: absoluta; superior:
0; izquierda: 0; altura: 40px;
ancho: 40px; fondo: rgb
(246, 156, 85);
.burst-12::before { -ms-
transform: rotar (30 grados); transformar:
rotar (30 grados);
}
.burst-12::después { -ms-
transform: rotar (60 grados); transformar:
rotar (60 grados);
<div clase="cuadrado"></div>
.cuadrado
{ ancho: 100px;
altura: 100px;
fondo: rgb (246, 156, 85);
}
HTML:
<div clase="cubo"></div>
CSS:
.cubo
{ fondo: #dc2e2e; ancho:
100px; altura: 100px;
posición: relativa; margen:
50px;
.cubo::antes
{ contenido: '';
.cubo::después
{ contenido: '';
pantalla: bloque en línea;
fondo: #9e1515; ancho: 16px;
altura: 100px; transformar:
sesgado Y (-50 grados);
posición: absoluta; arriba: -10px;
izquierda: 100%;
Ver demostración
HTML:
<div class="pirámide"></div>
CSS:
.pirámide
{ ancho: 100px;
altura: 200px;
posición: relativa; margen:
50px;
}
.piramide::antes,.piramide::despues {
contenido: '';
pantalla: bloque en línea;
ancho: 0; altura: 0; borde: 50px
sólido;
posición: absoluta;
}
.piramide::antes de {
border-color: transparente transparente #ff5656 transparente; transformar: scaleY(2)
skewY(-40deg) rotar(45deg);
}
.pyramid::after { border-
color: transparente transparente #d64444 transparente; transformar: scaleY(2)
skewY(40deg) rotar(-45deg);
}
Código
<div id="multi-columns">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore
et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint
occaecat cupidatat non proident, sunt in culpa qui oficia deserunt mollit anim id est laborum</div>
.multi-columnas { -
moz-column-count: 2;
-webkit-column-count: 2;
recuento de columnas: 2;
}
Resultado
en el ancho disponible.
Código:
</div>
.multi-columnas { -moz-
columna-ancho: 100px; -webkit-
columna-ancho: 100px; ancho de
columna: 100px;
}
Resultado
CSS
.content { -
webkit-column-count: 3; /* Chrome, Safari, Opera */ -moz-column-
count: 3; /* Firefox */ recuento de columnas: 3; }
<sección>
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore
magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.</p> <p> Stet clita kasd
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et
accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p>
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna
aliquyam erat, sed diam voluptua . At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea
takimata sanctus est Lorem ipsum dolor sit amet.</p> </section>
Con el siguiente CSS aplicado, el contenido se divide en tres columnas separadas por una regla de columna gris de dos píxeles.
sección
{ columnas:
3; espacio entre
columnas : 40px; columna-regla: 2px gris sólido;
}
HTML
<navegación>
<ul>
<li>abc</li>
<li>abcdefghijkl</li>
<li>abcdef</li>
</ul>
</nav>
CSS
navegación { ancho:
100%; altura de línea: 1,4 em;
} ul
{ estilo de lista: ninguno;
pantalla: bloque;
ancho: 100%; margen:
0; relleno: 0; alineación
de texto: justificar;
margen inferior: -1.4em;
} ul:después
{ contenido: "";
pantalla: bloque en línea;
ancho: 100%;
} li
{ pantalla: bloque en línea;
}
notas
Las etiquetas nav, ul y li se eligieron por su significado semántico de 'una lista de elementos de navegación (menú)'. Por supuesto, también
se pueden utilizar otras etiquetas.
El pseudo-elemento :after causa una 'línea' extra en el ul y por lo tanto una altura vacía extra de este bloque, empujando hacia abajo
otro contenido. Esto se resuelve con el margen inferior negativo, que debe tener la misma magnitud que la altura de la línea (pero
negativa).
Si la página se vuelve demasiado estrecha para que quepan todos los elementos, los elementos se dividirán en una nueva línea
(comenzando desde la derecha) y se justificarán en esta línea. La altura total del menú crecerá según sea necesario.
Las propiedades comunes que se heredan automáticamente son: fuente, color, alineación de texto, altura de línea.
#miContenedor
{ color: rojo;
relleno: 5px;
}
Esto aplicará color: rojo no solo al elemento <div> sino también a los elementos <h3> y <p> . Sin embargo, debido a la naturaleza del
relleno , su valor no se heredará a esos elementos.
<div id="myContainer">
<h3>Algún encabezado</
h3> <p>Algún párrafo</p> </
div>
Sin embargo, a veces se desea la herencia de todos modos. Para lograr esto, podemos aplicar el valor de herencia a la propiedad que se
debe heredar. El valor heredado se puede aplicar a cualquier propiedad CSS y cualquier elemento HTML.
#miContenedor
{ color: rojo;
relleno: 5px;
} #miContenedor p {
relleno: heredar;
}
Esto aplicará color: rojo a los elementos <h3> y <p> debido a la naturaleza de herencia de la propiedad de color .
Sin embargo, el elemento <p> también heredará el valor de relleno de su padre porque así se especificó.
<div id="myContainer">
<h3>Algún encabezado</
h3> <p>Algún párrafo</p>
</div>
Un sprite de imagen es un activo único ubicado dentro de una hoja de sprite de imagen. Una hoja de sprites de imagen es un archivo de
imagen que contiene más de un activo que se puede extraer de él.
Por ejemplo:
La imagen de arriba es una hoja de sprites de imagen, y cada una de esas estrellas es un sprite dentro de la hoja de sprites. Estas hojas
de sprites son útiles porque mejoran el rendimiento al reducir la cantidad de solicitudes HTTP que un navegador podría tener que hacer.
HTML
CSS
.icon
{ fondo: url(“iconos-sprite.png”); pantalla:
bloque en línea; altura: 20px; ancho: 20px;
} .icon1
{ posición de fondo: 0px 0px;
} .icon2
{ posición de fondo: -20px 0px;
} .icon3
{ posición de fondo: -40px 0px;
}
Al configurar el ancho y la altura del sprite y al usar la propiedad de posición de fondo en CSS (con un valor x e y), puede extraer fácilmente
sprites de una hoja de sprite usando CSS.
Una URL que puede apuntar a un elemento SVG en línea (o) un elemento SVG en un archivo externo que contiene la
clip-fuente
definición de la ruta del clip.
Se refiere a uno entre recuadro(), círculo(), elipse() o polígono(). Usando una de estas funciones se define la
forma básica ruta de recorte. Estas funciones de forma funcionan exactamente de la misma manera que lo hacen en Formas para
flotantes. Puede tener uno entre cuadro de contenido, cuadro de relleno, cuadro de borde, cuadro de margen, cuadro
de relleno, cuadro de trazo, cuadro de vista como valores. Cuando se proporciona sin ningún valor para <basic-
shape>, los bordes del cuadro correspondiente se utilizan como ruta de recorte. Cuando se usa con una <basic-
clip-geometry-box
shape>, actúa como el cuadro de referencia para la forma.
máscara-referencia Puede ser ninguno o una imagen o una URL de referencia a una fuente de imagen de máscara.
Esto especifica cómo se debe repetir o colocar en mosaico la máscara en los ejes X e Y. Los valores admitidos son
estilo de repetición
repetir-x, repetir-y, repetir, espacio, redondo, sin repetición.
Puede ser alfa o luminancia o automático e indica si la máscara debe tratarse como una máscara alfa o una máscara
modo máscara de luminancia. Si no se proporciona ningún valor y la máscara de referencia es una imagen directa, entonces se
consideraría una máscara alfa (o) si la máscara de referencia es una URL, entonces
se consideraría como máscara de luminancia.
Esto especifica la posición de cada capa de máscara y tiene un comportamiento similar a la propiedad de posición
posición de fondo . El valor se puede proporcionar en una sintaxis de 1 valor (como arriba, 10 %) o en una sintaxis de 2
valores (como arriba a la derecha, 50 % 50 %).
Esto especifica el cuadro al que se debe recortar la máscara (área de pintura de máscara) o el cuadro que se debe
usar como referencia para el origen de la máscara (área de posicionamiento de máscara) según la propiedad. La lista
caja de geometría de valores posibles son content-box, padding-box, border-box, margin-box, fill-box, stroke-box, view-box. La explicación
detallada de cómo funciona cada uno de esos valores está disponible en W3C Spec.
Esto representa el tamaño de cada capa de imagen de máscara y tiene la misma sintaxis que el tamaño de fondo. El
tamaño bg valor puede ser longitud o porcentaje o automático o cubrir o contener. La longitud, el porcentaje y el auto se pueden
proporcionar como un solo valor o como uno para cada eje.
Puede ser cualquiera entre sumar, restar, excluir, multiplicar por capa y define el tipo de operador de composición de
la operación de composición las
queespecificaciones
debe usarse paradelesta
W3C.capa con las que están debajo. La explicación detallada de cada valor está disponible en
Recorte
Los clips son caminos vectoriales. Fuera de este camino el elemento será transparente, dentro es opaco. Por lo tanto, puede definir una propiedad
de ruta de recorte en los elementos. Todos los elementos gráficos que también existen en SVG se pueden usar aquí como una función para
definir la ruta. Los ejemplos son círculo(), polígono() o elipse().
Ejemplo
clip-path: círculo (100 px en el centro);
El elemento solo será visible dentro de este círculo, que está ubicado en el centro del elemento y tiene un radio de 100 px.
Enmascaramiento
Las máscaras son similares a los clips, pero en lugar de definir una ruta, define una máscara que se coloca sobre el elemento. Puedes
imaginar esta máscara como una imagen que consiste principalmente en dos colores: blanco y negro.
Máscara de luminancia: el negro significa que la región es opaca y el blanco que es transparente, pero también hay un área gris que es
semitransparente, por lo que puede realizar transiciones suaves.
Máscara Alfa: Solo en las áreas transparentes de la máscara el elemento será opaco.
Esta imagen, por ejemplo, se puede utilizar como máscara de luminancia para hacer que un elemento tenga una transición muy suave
de derecha a izquierda y de opaco a transparente.
La propiedad de máscara le permite especificar el tipo de máscara y una imagen para usar como capa.
Ejemplo
máscara: url(masks.svg#rectangle) luminancia;
Un elemento llamado rectángulo definido en masks.svg se utilizará como máscara de luminancia en el elemento.
div
{ altura: 200px;
ancho: 200px;
fondo: url(http://lorepixel.com/200/200/nature/1); imagen de máscara:
degradado lineal (a la derecha, blanco, transparente);
}
HTML
<div></div>
En el ejemplo anterior hay un elemento con una imagen como fondo. La máscara que se aplica a la imagen (usando CSS) hace que parezca
que se desvanece de izquierda a derecha.
El enmascaramiento se logra mediante el uso de un degradado lineal que va de blanco (a la izquierda) a transparente (a la derecha) como
máscara. Como es una máscara alfa, la imagen se vuelve transparente donde la máscara es transparente.
Nota: como se mencionó en los comentarios, el ejemplo anterior funcionaría en Chrome, Safari y Opera solo cuando se usa con el prefijo
-webkit . Este ejemplo (con un degradado lineal como imagen de máscara) aún no es compatible con Firefox.
div{
ancho: 200px;
altura: 200px;
fondo: verde azulado;
ruta de recorte: círculo (30% a 50% 50%); /* consulte los comentarios antes del uso */
}
HTML
<div></div>
Este ejemplo muestra cómo recortar un div a un círculo. El elemento se recorta en un círculo cuyo radio es del 30 % en función de las
dimensiones del cuadro de referencia con su punto central en el centro del cuadro de referencia. Aquí, dado que no se proporciona
ningún <recuadro de geometría de clip> (en otras palabras, cuadro de referencia), el cuadro de borde del elemento se utilizará como
cuadro de referencia.
La forma del círculo debe tener un radio y un centro con coordenadas (x, y) :
círculo (radio en x y)
Ver ejemplo
Producción:
div{ ancho:200px;
altura: 200px;
fondo: verde azulado;
ruta de recorte: polígono (0 0, 0 100%, 100% 50%); /* consulte los comentarios antes del uso */
}
HTML:
<div></div>
En el ejemplo anterior, se utiliza un trazado de recorte poligonal para recortar el elemento cuadrado (200 x 200) en forma de triángulo.
La forma de salida es un triángulo porque la ruta comienza en (es decir, las primeras coordenadas están en) 0 0 , que es la esquina superior
izquierda del cuadro, luego va a 0 100% , que es la esquina inferior izquierda del cuadro. y finalmente a 100% 50% que no es más que el punto medio
derecho del cuadro. Estos caminos se cierran solos (es decir, el punto de inicio será el punto final) y, por lo tanto, la forma final es la de un triángulo.
Esto también se puede usar en un elemento con una imagen o un degradado como fondo.
Ver ejemplo
Producción:
div
{ ancho: 200px;
altura: 200px;
fondo: url (http://lorepixel.com/200/200/abstract/6); imagen de máscara:
gradiente radial (círculo del lado más alejado en el centro, transparente 49%, blanco 50%); /* controlar
comentarios antes de usar
*/ }
HTML
En el ejemplo anterior, se crea un círculo transparente en el centro usando un degradado radial y luego se usa como una máscara para producir
el efecto de un círculo recortado del centro de una imagen.
Sección 44.6: Uso de máscaras para crear imágenes con formas irregulares
CSS
<div></div>
En el ejemplo anterior, tres imágenes de gradiente lineal (que cuando se colocan en sus posiciones adecuadas cubrirían el 100 % x 100
% del tamaño del contenedor) se usan como máscaras para producir un corte triangular transparente en la parte inferior de la imagen.
Insertar saltos de página para que la página siguiente tenga el formato de página
izquierda derecha Insertar saltos de página para que la página siguiente tenga el formato de página
derecha inicial Establece esta propiedad en su valor predeterminado. heredar Hereda esta propiedad
de su elemento principal.
@media print { p
{ página-salto-
dentro: evitar;
} h1
{ salto de página antes: siempre;
} h2
{ salto de página después de: evitar;
}
}
evita un salto de página dentro de cualquier etiqueta p, lo que significa que un párrafo nunca se dividirá en dos páginas, si es posible.
fuerza un salto de página antes en todos los encabezados h1, lo que significa que antes de cada ocurrencia de h1, habrá un salto
de página. previene los saltos de página justo después de cualquier h2
Finalmente, inserte una regla de imagen de fondo para el elemento del cuerpo al final de la hoja de estilo:
Para mostrar la página web, un navegador web sigue los siguientes pasos.
}
}
En términos de sintaxis, @supports es muy similar a @media, pero en lugar de detectar el tamaño y la orientación de la pantalla,
@supports detectará si el navegador puede manejar una regla CSS determinada.
En lugar de hacer algo como @supports (flex), observe que la regla es @supports (display: flex).
Para disfrutar de la mejor experiencia @supports , intente agrupar expresiones lógicas con paréntesis:
@supports ((display: block) y (zoom: 1)) o ((display: flex) y (no (display: table-cell))) o (transform: translateX(1px)) {
/ * ... */
}
Raíz
DIV #1
DIV #2
DIV #3
DIV #4
DIV #5
DIV #6
Es importante tener en cuenta que DIV #4, DIV #5 y DIV #6 son hijos de DIV #3, por lo que el apilamiento de esos elementos se
resuelve completamente dentro de DIV #3. Una vez que se completa el apilamiento y la renderización dentro de DIV #3, todo el
elemento DIV #3 se pasa para apilar en el elemento raíz con respecto al DIV de su hermano.
HTML:
<div id="div1">
<h1>Elemento de división #1</h1>
<code>posición: relativa;<br/> índice z:
5;</code>
</div>
<div id="div2">
<h1>Elemento de división #2</h1>
<code>posición: relativa;<br/> índice z:
2;</code> </div>
<div id="div3">
<div id="div4">
</div>
CSS:
*{
margen : 0 ;
} html
{ relleno : 20px ;
fuente : 12px /20px Arial , sans-serif ;
} div
{ opacidad : 0.7 ;
posición : relativa ;
} h1
{ fuente : heredar ;
fuente-peso : negrita ;
} #div1 ,
#div2
{ borde : 1px punteado #696 ;
relleno : 10px ; color de fondo :
#cfc ;
} #div1
{ índice z : 5 ;
margen inferior : 190px ;
} #div2
{ índice z : 2 ;
} #div3
{ índice z : 4 ;
opacidad : 1 ;
posición : absoluta ;
arriba : 40px ; izquierda :
180px ; ancho : 330px ;
borde : 1px punteado #900 ;
color de fondo : #fdd ; relleno :
40px 20px 20px ;
} #div4 ,
#div5
{ borde: 1px punteado #996; color
de fondo: #ffc;
} #div4
{ índice z: 6;
margen inferior: 15px;
relleno: 25px 10px 5px;
} #div5
{ índice z: 1;
margen superior: 15px;
relleno: 5px 10px;
} #div6
{ índice z: 3;
posición: absoluta; arriba:
20px; izquierda: 180px;
ancho: 150px; altura:
125px; borde: 1px punteado
#009; acolchado superior:
125px; color de fondo: #ddf;
alineación de texto: centro;
Resultado:
Fuente:
https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context.
img{ flotador:izquierda;
ancho: 100px;
margen:0 10px;
} .div1{ fondo:#f1f1f1; /* no
crea contexto de formato de bloque */
} .div2{ fondo:#f1f1f1;
desbordamiento: oculto; /*
crea contexto de formato de bloque */
}
https://jsfiddle.net/MadalinaTn/qkwwmu6m/2/
El uso de la propiedad de desbordamiento con un valor diferente a visible (su valor predeterminado) creará un nuevo contexto de
formato de bloque. Esto es técnicamente necesario : si un flotador se cruzara con el elemento de desplazamiento, volvería a envolver
el contenido a la fuerza.
Este ejemplo que muestra cómo varios párrafos interactuarán con una imagen flotante es similar a este ejemplo, en
css-tricks.com.
2: https://developer.mozilla.org/en-US/docs/Web/CSS/overflow MDN
<div class="envoltorio">
<div clase="exterior">
<div class="inner">
centrado
</div>
</div> </div>
CSS:
.envoltorio
{ altura: 600px;
alineación de texto: centro;
} .outer
{ pantalla: tabla;
altura: 100%;
ancho: 100%;
} .outer .inner
{ pantalla: table-cell;
alineación de texto:
centro; alineación vertical: medio;
}
<div class="contenedor">
<div class="child"></div> </div>
CSS:
.contenedor
{ altura: 500px;
ancho: 500px;
pantalla: flexible; // Use Flexbox //
alinear elementos: Esto centra a los niños verticalmente en el padre.
centro; justificar-contenido: // Esto centra a los niños horizontalmente.
centro; fondo: blanco;
}
.niño
{ ancho: 100px;
altura: 100px;
fondo: azul;
}
<div class="envoltorio">
<div class="centrado">
centrado
</div>
</div>
CSS:
.wrapper
{ posición: relativo;
altura: 600px;
} .centered
{ posición: absoluta;
índice z: 999;
transformar: traducir (-50%, -50%); arriba:
50%; izquierda: 50%;
<div class="contenedor">
<span>centrado verticalmente </div>
CSS:
Nota: este método solo centrará verticalmente una sola línea de texto. No centrará los elementos del bloque correctamente y si el texto se
divide en una nueva línea, tendrá dos líneas de texto muy altas.
<div class="envoltorio">
<img
src="http://cdn.sstatic.net/Sites/stackoverflow/company/img/logos/so/so-icon.png?v=c78bd457575a"> </div>
CSS:
.envoltura{ posición:relativa;
altura: 600px;
} .wrapper img
{ posición: absoluta;
superior: 0; izquierda: 0;
derecha: 0; inferior: 0;
margen: automático;
Si desea centrar otras imágenes, entonces debe dar alto y ancho a ese elemento.
HTML:
CSS:
.envoltura{ posición:relativa;
altura: 600px;
} .wrapper .child
{ posición: absoluta;
superior: 0; izquierda: 0;
derecha: 0; inferior: 0;
margen: automático;
ancho: 200px; altura: 30px;
borde: 1px sólido #f00;
CSS:
.wrapper:antes{ contenido:
""; pantalla: bloque
en línea; altura: 100%;
alineación vertical: medio;
.content
{ pantalla: bloque en línea;
altura: 80px; alineación
vertical: medio;
}
Este método se utiliza mejor en los casos en los que tiene un .content de altura variada centrado dentro de .wrapper; y desea que la altura
de .wrapper se expanda cuando la altura de .content supere la altura mínima de .wrapper .
La propiedad object-fit definirá cómo un elemento encajará en un cuadro con una altura y un ancho establecidos. Generalmente aplicado a una imagen o
LLENAR
Rellenar estira la imagen para que se ajuste al cuadro de contenido sin tener en cuenta la relación de aspecto original de la imagen.
CONTENER
Contain ajusta la imagen en la altura o el ancho del cuadro mientras mantiene la relación de aspecto de la imagen.
CUBRIR
La portada llena todo el cuadro con la imagen. La relación de aspecto de la imagen se conserva, pero la imagen se recorta a las dimensiones
de la caja.
NINGUNA
ESCALA-REDUCCIÓN
Reducir el tamaño del objeto como ninguno o como contenido. Muestra cualquier opción que resulte en un tamaño de imagen más pequeño.
Estos ejemplos NO son para documentar marcos CSS como Bootstrap o Fundación.
Como lo mismo implica, la metodología BEM tiene que ver con la división en componentes de su código HTML y CSS en tres tipos
de componentes:
Los ejemplos son encabezado, contenedor, menú, casilla de verificación y cuadro de texto
Elementos: parte de los bloques que no tienen un significado independiente y están vinculados semánticamente a sus bloques.
Los ejemplos son elemento de menú , elemento de lista, título de casilla de verificación y título de encabezado
Modificadores: banderas en un bloque o elemento, que se utilizan para cambiar la apariencia o el comportamiento
Los ejemplos están deshabilitados, resaltados, marcados, fijos, tamaño grande y color amarillo
El objetivo de BEM es seguir optimizando la legibilidad, el mantenimiento y la flexibilidad de su código CSS. La manera de
lograr esto, es aplicar las siguientes reglas.
Los elementos o bloques que tienen modificadores deben heredar todo del bloque o elemento que está modificando
excepto las propiedades que se supone que modifica el modificador
ejemplo de código
Si aplica BEM a los elementos de su formulario, sus selectores de CSS deberían verse así:
-khtml -Conquistador
sean coherentes entre los navegadores porque: las especificaciones del idioma no están claras, por lo que los estilos básicos están sujetos a interpretación,
es posible que los navegadores no sigan las especificaciones proporcionadas o que los navegadores no tengan estilos predeterminados para los elementos
HTML más nuevos. Como resultado, es posible que las personas deseen normalizar los estilos predeterminados en tantos navegadores como sea posible.
Debido a que estos estilos predeterminados tienen cierto margen de maniobra por las especificaciones del idioma y debido a que los navegadores
pueden no seguir las especificaciones correctamente, pueden diferir de un navegador a otro.
Aquí es donde normalize.css entra en juego. Anula las inconsistencias más comunes y corrige errores conocidos.
Qué hace
Por lo tanto, al incluir normalize.css en su proyecto, su diseño se verá más parecido y consistente en diferentes navegadores.
Es posible que haya oído hablar de reset.css. ¿Cuál es la diferencia entre los dos?
Mientras que normalize.css proporciona consistencia al establecer diferentes propiedades en valores predeterminados unificados, reset.css logra
la consistencia al eliminar todos los estilos básicos que un navegador puede aplicar. Si bien esto puede parecer una buena idea al principio, en realidad
significa que debe escribir todas las reglas usted mismo, lo que va en contra de tener un estándar sólido.
html, cuerpo, div, span, applet, objeto, iframe, h1, h2, h3,
h4, h5, h6, p, blockquote, pre, a, abr, acrónimo, dirección,
grande, cite, código, del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt,
dd, ol, ul, li, fieldset, forma, etiqueta, leyenda, tabla, título,
tbody, tfoot, thead, tr, th, td,
Normaliza CSS por otro y trata muchos de estos por separado. El siguiente es un ejemplo de la versión (v4.2.0) del
código.
/ **
* 1. Cambiar la familia de fuentes predeterminada en todos los navegadores (obstinado).
* 2. Corregir la altura de línea en todos los navegadores.
* 3. Evite los ajustes del tamaño de fuente después de los cambios de orientación en IE e iOS. */
/ * Documento
================================================== ========================*/
html
{ familia de fuentes: sans-serif; /* 1 */ altura de
línea: 1.15; /* 2 */ -ms-text-size-adjust: 100%; /*
3 */ -webkit-text-size-adjust: 100%; /* 3 */
/ * Secciones
================================================== ========================*/
/ **
* Eliminar el margen en todos los navegadores (obstinado). */
cuerpo
{ margen: 0;
}
/ **
* Agrega la visualización correcta en IE 9-. */
artículo,
aparte, pie
de página,
encabezado,
navegación,
sección
{ pantalla: bloque;
}
/ **
* Corregir el tamaño de fuente y el margen en los elementos `h1` dentro de los contextos de `sección` y *
`artículo` en Chrome, Firefox y Safari. */
h1
{ tamaño de fuente:
2em; margen: 0,67em 0;
}
Normalizar CSS
La propiedad de visualización con el valor de bloque en línea no es compatible con Internet Explorer 6 y 7. Una solución alternativa
para esto es:
ampliar:
1; *pantalla: en línea;
La propiedad de zoom activa la función hasLayout de los elementos y solo está disponible en Internet Explorer. La *pantalla se
asegura de que la propiedad no válida se ejecute solo en los navegadores afectados. Otros navegadores simplemente ignorarán la
regla.
En Internet Explorer 10+ y Edge, Microsoft proporciona el selector de medios -ms-high-contrast para exponer la configuración de
"Alto contraste" del navegador, lo que permite al programador ajustar los estilos de su sitio en consecuencia.
El selector -ms-high-contrast tiene 3 estados: activo, negro sobre blanco y blanco sobre negro. En IE10+ también tenía un
estado ninguno , pero eso ya no se admite en Edge en el futuro.
Ejemplos
@media screen y (-ms-high-contrast: active), (-ms-high-contrast: black-on-white) {
Esto cambiará el fondo del encabezado a blanco y el color del texto a negro cuando el modo de alto contraste esté activo y esté en
modo de blanco y negro .
Similar al primer ejemplo, pero esto selecciona específicamente el estado blanco sobre negro e invierte los colores del encabezado
en un fondo negro con texto blanco.
Más información:
.ocultar-en-ie6-y-ie7 {
*pantalla : ninguna; // Esta línea se procesa solo en IE6 e IE7
}
Los prefijos no alfanuméricos (que no sean guiones y guiones bajos) se ignoran en IE6 e IE7, por lo que este truco funciona para
cualquier propiedad sin prefijo: par de valores .
@media \0 pantalla
{ .hide-on-ie8
{ pantalla : ninguno;
}
}
Cambiar algún atributo CSS hará que el navegador calcule de forma sincrónica el estilo y el diseño, lo cual es malo cuando
necesitas animar a 60 fps.
NO
#caja
{ izquierda:
0;
superior: 0; transición: izquierda 0.5s,
arriba 0.5s; posición: absoluta; ancho:
50px; altura: 50px; color de fondo: gris;
#box.active
{ izquierda:
100px; arriba: 100px;
}
HACER
#caja
{ izquierda :
0;
superior : 0 ; posición :
absoluta ; ancho : 50px ;
altura : 50px ; color de
fondo : gris ;
#caja.activa {
Manifestación misma animación, tomó 1.3ms para renderizar, 2.0ms para pintar.
Créditos
Muchas gracias a todas las personas de Stack Overflow Documentation que ayudaron a proporcionar este contenido.
se pueden enviar más cambios a [email protected] para que se publique o actualice nuevo contenido
AB capitulo 20
A.J. Capítulo 4
Aarón Capítulo 4
abaracedo Capítulo 4
Abhishek Singh capitulo 22
adamboro Capítulo 1
Aeolingamenfel Capítulos 27 y 55
Ahmed Alfy Capítulos 4, 5 y 16
Alohci Capítulo 15
amflare Capítulos 13 y 17
andré lopes capitulo 44
andre mcgruder capitulo 54
andreas Capítulos 15 y 38
Andrés Capítulos 12, 19 y 53
andres myers capitulo 47
Añil Capítulo 4
animacion Capítulos 4, 50 y 53
pablo Capítulos 6 y 27
arácnido Capítulo 4
Arif Capítulo 11
Arjan Einbu Capítulos 4, 7, 8, 15 y 17
Ashwin Ramaswami Capítulos 1 y 4
Asim KT Capítulos 5 y 16
AVAVT capitulo 50
temor Capítulo 1
bdkopen Capítulo 3
Ben Rhys Capítulo 5
Bipón capitulo 40
GalletaPanadero Capítulo 7
boris Capítulo 5
Boysenb3rry Capítulo 1
brandaemon capitulo 17
Brett De Woody Capítulos 18, 38 y 39
CalvT Capítulos 5 y 9
Casey Capítulo 11
cassidy williams Capítulos 10 y 22
cdm Capítulos 5 y 8
charlie h Capítulos 4 y 28
Chathuranga Jayanath Capítulos 11, 13 y 23
enfriador capitulo 38
cris Capítulos 1, 4, 23, 25, 42 y 50
chris saliva Capítulos 8 y 24
christiaan maks capitulo 28
Codificador de Capítulo 5
CocoaBean Capítulo 3
cono56 Capítulos 31 y 36
CPHPython Capítulo 4
csx.cc Capítulo 1
cuervoo capitulo 18
Daniel G. Blázquez Capítulo 5
Daniel Käfer Capítulo 6
daniel stradowski Capítulo 5
DarkAjax capitulo 17
darrylyeo Capítulos 2, 13 y 18
Golpe de dardo Capítulo 5
Dave Everitt Capítulo 4
david fullerton Capítulo 4
Deméter Dimitri Capítulo 4
demonioofthemista capitulo 14
diseñar Capítulos 4, 5 y 18
Devid Farinelli Capítulos 4 y 6
devon bernardo Capítulo 4
Dex estrella capitulo 27
diego v Capítulo 6
Dinidu Hewage Capítulo 4
dippas Capítulos 4, 17 y 21
doctoresherlock Capítulo 10
dodopok Capítulos 13, 36 y 45
Elegante.Scripting capitulo 43
Eliran Malka Capítulo 6
emmanuele parisio Capítulo 6
evgeny Capítulo 15
Farzad YZ Capítulo 6
fcalderan Capítulo 5
feeela Capítulos 46 y 55
Felipe Als Capítulos 1, 5, 10, 11, 14, 16, 24 y 25
Félix AJ Capítulo 15
Félix Edelmann Capítulo 4
Félix Schütz Capítulo 4
Cuarenta Capítulo 4
fracciones Capítulo 4
fzzylogic capitulo 16
GRAMO
Capítulos 1 y 17
gabriel r Capítulo 1
gandreadis Capítulo 4
geek1011 capitulo 21
geeksal capitulo 17
gerardas Capítulo 1
Gnietschow Capítulo 10
CabrasVestirSombreros Capítulo 1
Gofilord capitulo 21
otorgar palin capitulo 54
H. Pauwelyn Capítulos 4, 18 y 36
HansCz Capítulo 4
Harish Gyanani Capítulo 1
harry Capítulos 10, 26, 28, 29, 33, 35 y 44
henry Capítulo 4
Horst Jahn Capítulo 5
cristo capitulo 32
Hugo Buff Capítulo 4
Hynes Capítulos 4, 5 y 15
insertar nombre de usuario aquí Capítulo 15
J atkin Capítulos 1 y 4
JF Capítulos 4 y 20
jacob gris Capítulos 4, 5 y 22
james donnelly Capítulos 7 y 17
James Taylor Capítulo 5
Jaredsk Capítulos 10, 36 y 50
JedaiCoder Capítulo 6
Jef capitulo 16
Jeffery Tang capitulo 30
jehna1jgh Capítulo 6
Capítulo 12
JHS capitulo 25
Jmh2013 Capítulos 13, 23 y 43
joejoe31b Capítulos 4 y 13
JoelBonetR Capítulo 4
joe_young Capítulos 1 y 15
Juan Slegers Capítulos 4, 5, 6, 13, 17, 18, 28, 52 y 55
jon chan Capítulos 5 y 15
Jonathan Argentiero Capítulo 6
jonathan lam Capítulos 1, 6, 7, 16 y 22
Jonathan Zúñiga Capítulo 5
José Gómez Capítulo 1
solo un estudiante Capítulo 1
kevin katzke capitulo 23
reycobra1986 capitulo 17
Kuhan capitulo 18
Kyle Ratliff Capítulo 6
leo_ap capitulo 50
LiLacTac capitulo 55
Luka Kerr capitulo 29
lucas taylor capitulo 28
madalina taina Capítulos 4, 5, 6, 8, 9, 10, 11, 12, 14, 15, 19, 25, 29, 31, 32, 34, 39, 45 y 49
Bagazo capitulo 20
Marcatectura capitulo 21
Marjorie Pickard Capitulo 2
Marcos Perera Capítulo 4
Marten Koetsier Capítulos 34 y 41
Matas Vaitkevicius Capítulos 4 y 13
mattia astorino capitulo 22
Maximiliano Laumeister Capítulos 5 y 13
Maxouhell Capítulo 6
Michael Moriarty Capítulos 5, 15 y 18
miguel_b Capítulos 4 y 6
Mipiet Capítulo 6
mike mcaughan capitulo 24
Millas Capítulos 12 y 51
Miró capitulo 18
MMachinegun capitulo 54
mmativ capitulo 50
Mod Proxy Capítulo 6
Sr. Alien Capítulo 5