{"id":73073,"date":"2024-01-22T12:08:22","date_gmt":"2024-01-22T11:08:22","guid":{"rendered":"https:\/\/kinsta.com\/es\/?p=73073&#038;preview=true&#038;preview_id=73073"},"modified":"2024-01-29T10:45:48","modified_gmt":"2024-01-29T09:45:48","slug":"tecnicas-advanzadas-css","status":"publish","type":"post","link":"https:\/\/kinsta.com\/es\/blog\/tecnicas-advanzadas-css\/","title":{"rendered":"Dominar las t\u00e9cnicas CSS avanzadas: profundiza en las transiciones, animaciones y transformaciones"},"content":{"rendered":"<p>El CSS ya no se limita a hacer que los sitios parezcan bonitos. Ha evolucionado hasta convertirse en una herramienta que da vida a los sitios web con movimientos e interacciones que antes se cre\u00edan imposibles.<\/p>\n<p>As\u00ed que con esta gu\u00eda pretendemos que te pongas al d\u00eda con tres potentes funciones en particular: transiciones, animaciones y transformaciones. Comprender y utilizar estas t\u00e9cnicas avanzadas es esencial para los dise\u00f1adores y desarrolladores web que han ido m\u00e1s all\u00e1 de los <a href=\"https:\/\/kinsta.com\/es\/blog\/buenas-practicas-css\/\">conceptos b\u00e1sicos de CSS<\/a> y pretenden crear sitios web que destaquen \u2014 y resistan el paso del tiempo.<\/p>\n<p>Al avanzar por esta gu\u00eda, adquirir\u00e1s valiosas habilidades para llevar tus proyectos web m\u00e1s all\u00e1 de lo ordinario. Y, con suerte, tambi\u00e9n te llevar\u00e1s algo de inspiraci\u00f3n.<br \/>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc><\/p>\n<h2>Transiciones CSS avanzadas<\/h2>\n<p>Las transiciones CSS avanzadas hacen que los elementos de la interfaz de usuario sean interactivos, atractivos y agradables a la vista. Imagina que tienes un bot\u00f3n en tu web. Normalmente, se queda ah\u00ed, pero con las transiciones CSS, cuando alguien pasa el rat\u00f3n por encima, cambia suavemente de color o quiz\u00e1 aumenta un poco de tama\u00f1o.<\/p>\n<p>El concepto gira en torno a la idea de interpolaci\u00f3n \u2014 una transici\u00f3n suave entre diferentes estados de una propiedad CSS.<\/p>\n<p>Para crear estos efectos, hay varias propiedades CSS con las que debes familiarizarte:<\/p>\n<ul>\n<li><strong>Propiedades de transici\u00f3n<\/strong>: Esto incluye especificar la propiedad que quieres animar (como <code>background-color<\/code> o <code>opacity<\/code>), establecer la duraci\u00f3n de la transici\u00f3n y decidir el <code>transition-timing-function<\/code> (como <code>ease-in<\/code> o <code>linear<\/code>), que dicta c\u00f3mo progresa la transici\u00f3n a lo largo de su duraci\u00f3n.<\/li>\n<li><strong>Funciones de temporizaci\u00f3n<\/strong>: Son imprescindibles, ya que controlan la aceleraci\u00f3n y desaceleraci\u00f3n de la transici\u00f3n. Una de las opciones m\u00e1s vers\u00e1tiles es la funci\u00f3n <code> cubic-bezier<\/code>. Esta funci\u00f3n permite crear curvas de velocidad personalizadas, d\u00e1ndote un control total sobre el ritmo de tu transici\u00f3n. Al principio puede resultar un poco complicado, pero herramientas como <a href=\"https:\/\/cubic-bezier.com\/#.64,.55,.93,.18\" target=\"_blank\" rel=\"noopener noreferrer\">cubic-bezier<\/a> facilitan la visualizaci\u00f3n y creaci\u00f3n de estas curvas.<\/li>\n<\/ul>\n<figure id=\"attachment_173234\" aria-describedby=\"caption-attachment-173234\" style=\"width: 900px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-173234\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/01\/cubic-bezier.png\" alt=\"cubic-bezier\" width=\"900\" height=\"364\"><figcaption id=\"caption-attachment-173234\" class=\"wp-caption-text\">Un ejemplo de cubic-bezier en acci\u00f3n.<\/figcaption><\/figure>\n<p>Aqu\u00ed tienes un ejemplo sencillo para ilustrar c\u00f3mo podr\u00edas utilizar esto en tu CSS:<\/p>\n<pre><code class=\"language-css\">.my-element {\n\ntransition-property: opacity;\n\ntransition-duration: 0.5s;\n\ntransition-timing-function: cubic-bezier(0.17, 0.67, 0.83, 0.67);\n\n}\n<\/code><\/pre>\n<p>En este fragmento, <code>.my-element <\/code>cambiar\u00e1 su opacidad con una curva de velocidad \u00fanica definida por la funci\u00f3n <code>cubic-bezier<\/code>. Esta curva dicta un tipo espec\u00edfico de movimiento, como empezar despacio, acelerar y luego ralentizarse hacia el final.<\/p>\n<p>Utilizando <code>transition-timing-function<\/code> con valores personalizados, puedes hacer que tus elementos web se muevan de una forma que parezca m\u00e1s natural, m\u00e1s din\u00e1mica o simplemente diferente de la est\u00e1ndar. Es una gran herramienta para a\u00f1adir personalidad y delicadeza a tus animaciones web.<\/p>\n<p>En cuanto a t\u00e9cnicas avanzadas, aqu\u00ed tienes algunas a tener en cuenta:<\/p>\n<ol>\n<li><strong>Manejando m\u00faltiples propiedades:<\/strong> \u00bfPor qu\u00e9 conformarse con animar una sola cosa? CSS te permite alinear varias propiedades y animarlas todas a la vez. Esto es perfecto para a\u00f1adir capas a tu animaci\u00f3n.<\/li>\n<li><strong>Animaciones sincronizadas<\/strong>: Tambi\u00e9n puedes alinear distintas propiedades para que se muevan al mismo ritmo, creando un efecto m\u00e1s coordinado.<\/li>\n<li><strong>Transiciones anidadas<\/strong>: Aplica transiciones a elementos dentro de un contenedor. De esta forma, cuando interact\u00faes con el contenedor, los elementos hijos se comportar\u00e1n como prefieras.<\/li>\n<\/ol>\n<p>Aseg\u00farate de que estas animaciones no s\u00f3lo se vean bien, sino que tambi\u00e9n se ejecuten con fluidez, especialmente en dispositivos menos potentes. Utilizar propiedades como <code>transform<\/code> y <code>opacity<\/code> es una decisi\u00f3n inteligente porque son m\u00e1s sencillas para los navegadores y no deber\u00edan afectar demasiado al rendimiento.<\/p>\n<p>Adem\u00e1s, un aviso a tu navegador con la propiedad <code>will-change<\/code> le ayuda a prepararse para la acci\u00f3n, garantizando que todo se ejecute sin problemas.<\/p>\n<p>Esto es s\u00f3lo una observaci\u00f3n final para garantizar que todo funcione en todas partes: los navegadores pueden ser quisquillosos. Utilizar prefijos de proveedor ayuda a garantizar que tus fant\u00e1sticas transiciones funcionen en los distintos navegadores. Es un poco de trabajo extra, pero herramientas como <a href=\"https:\/\/autoprefixer.github.io\/\">autoprefixers<\/a> pueden hacerlo por ti, evitando problemas.<\/p>\n<h2>Transformaciones en CSS<\/h2>\n<p>Las transformaciones CSS ofrecen una forma estupenda de a\u00f1adir m\u00e1s inter\u00e9s a tus dise\u00f1os web. Se pueden utilizar para mover cosas, por supuesto, pero tambi\u00e9n pueden cambiar por completo el aspecto de una p\u00e1gina. La propiedad <code>transform<\/code> es tu principal protagonista aqu\u00ed.<\/p>\n<p>Es vers\u00e1til y puede desplazar elementos de un lugar a otro, como deslizar una imagen por la pantalla o cambiar su tama\u00f1o \u2014 piensa en hacer que algo parezca m\u00e1s cerca o m\u00e1s lejos, como acercar o alejar una foto. Y si quieres ponerte un poco extravagante, incluso puedes hacer que los elementos giren.<\/p>\n<p>Lo realmente impresionante aqu\u00ed es cuando a\u00f1ades transformaciones 3D a la mezcla. Con funciones como <code>translate3d<\/code>, <code>scale3d<\/code>, y <code>rotate3d<\/code>, los elementos pueden saltar fuera de la pantalla, creando una experiencia m\u00e1s envolvente dentro del navegador.<\/p>\n<p>Tomemos, por ejemplo, el efecto de tarjeta volteada. Se trata de una atractiva funci\u00f3n en la que una cara de una tarjeta muestra cierta informaci\u00f3n, y cuando se voltea, se revela nuevo contenido en la otra cara. Este elemento interactivo puede captar realmente la atenci\u00f3n de tus visitantes.<\/p>\n<p>La clave para conseguir este efecto es utilizar eficazmente la propiedad <code>backface-visibility<\/code>. Esto garantiza que el <a href=\"https:\/\/css-tricks.com\/almanac\/properties\/b\/backface-visibility\/\" target=\"_blank\" rel=\"noopener noreferrer\">reverso de la tarjeta permanezca oculto<\/a> hasta que deba verse.<\/p>\n<p>Pero, \u00bfpor qu\u00e9 detenerse ah\u00ed? Cuando combinas estas transformaciones con transiciones y animaciones, puedes obtener mucho m\u00e1s de tu CSS. Puedes tener un bot\u00f3n que aumente elegantemente de tama\u00f1o al pasar el rat\u00f3n por encima o un icono que se mueva juguetonamente por la pantalla. Estos cambios din\u00e1micos a\u00f1aden una cualidad fluida a los elementos de tu p\u00e1gina web, haciendo que la experiencia del usuario sea a\u00fan m\u00e1s atractiva.<\/p>\n<p>Designmodo ofrece varios ejemplos atractivos de esta t\u00e9cnica en acci\u00f3n. En primer lugar, puedes ver el <a href=\"https:\/\/designmodo.com\/backface-visibility-css-animation\">CSS para transformaciones 3D<\/a> desglosado. Despu\u00e9s, puedes <a href=\"https:\/\/designmodo.com\/demo\/backface-visibility\/index.html\">ver el c\u00f3digo en acci\u00f3n<\/a>:<\/p>\n<figure id=\"attachment_173235\" aria-describedby=\"caption-attachment-173235\" style=\"width: 900px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-173235 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/01\/designmodo-spinning-donut.png\" alt=\"donut giratorio designmodo\" width=\"900\" height=\"395\"><figcaption id=\"caption-attachment-173235\" class=\"wp-caption-text\">Designmodo ofrece un magn\u00edfico ejemplo de transformaciones 3D funcionando a la perfecci\u00f3n.<\/figcaption><\/figure>\n<h2>Consultas de contenedor<\/h2>\n<p>Las consultas de contenedor son otro aspecto de CSS que merece la pena explorar. Te permiten aplicar estilo a los elementos en funci\u00f3n del tama\u00f1o de su contenedor, en lugar de en funci\u00f3n del tama\u00f1o de toda la pantalla. Pi\u00e9nsalo as\u00ed: tienes una caja, y quieres que lo que hay dentro se vea bien independientemente de lo grande o peque\u00f1a que sea la caja. Las consultas de contenedor son perfectas para eso.<\/p>\n<p>Son muy \u00fatiles cuando quieres que diferentes partes de tu p\u00e1gina web, como las barras laterales o las tarjetas, cambien su aspecto dependiendo del espacio que tengan. Cada componente puede <a href=\"https:\/\/www.smashingmagazine.com\/2023\/07\/writing-css-2023\/\" target=\"_blank\" rel=\"noopener noreferrer\">decidir su propio estilo<\/a>, independientemente del resto de la p\u00e1gina.<\/p>\n<p>Aqu\u00ed tienes un breve resumen sobre c\u00f3mo utilizarlos:<\/p>\n<ul>\n<li><strong>Configura el contenedor<\/strong>: En primer lugar, indica al CSS qu\u00e9 parte de tu p\u00e1gina es un contenedor. Esto se hace con propiedades como <code>container-type<\/code> y <code>container-name<\/code>.<\/li>\n<li><strong>Escribe tus consultas<\/strong>: Igual que las consultas de medios, pero para contenedores. Escribes una regla que diga: \u00abOye, si mi contenedor tiene al menos este ancho, entonces haz estos cambios de estilo\u00bb<\/li>\n<\/ul>\n<p>Este es el aspecto que tendr\u00eda el c\u00f3digo b\u00e1sico:<\/p>\n<pre><code class=\"language-css\">@container (min-width: 300px) {\n\n.component {\n\n\/* styles *\/\n\n}\n\n}<\/code><\/pre>\n<p>En este ejemplo, los estilos de la clase <code>.component<\/code> se aplicar\u00e1n cuando su contenedor alcance una anchura m\u00ednima de 300px.<\/p>\n<p>Ahora bien, las consultas de contenedor pueden utilizarse en varios escenarios, como por ejemplo:<\/p>\n<ul>\n<li><strong>Sidebars y pies de p\u00e1gina responsivos<\/strong>: Ajustar la anchura y el dise\u00f1o de los sidebars o los pies de p\u00e1gina en funci\u00f3n del tama\u00f1o del contenedor.<\/li>\n<li><strong>Tarjetas adaptables:<\/strong> Cambiar el dise\u00f1o o estilo de las tarjetas en un dise\u00f1o de cuadr\u00edcula o flexbox en funci\u00f3n de la anchura del contenedor.<\/li>\n<\/ul>\n<p>Aunque las consultas de contenedor son compatibles con los principales navegadores, como Chrome, Firefox, Safari y Edge, sigue siendo una buena pr\u00e1ctica utilizarlas como mejora progresiva. Empieza con estilos b\u00e1sicos para los navegadores que no los admitan y mej\u00f3ralos para los que admitan consultas de contenedor.<\/p>\n<h2>Utilizar Flexbox para la alineaci\u00f3n vertical<\/h2>\n<p><a href=\"https:\/\/web.dev\/learn\/css\/flexbox\" target=\"_blank\" rel=\"noopener noreferrer\">Flexbox<\/a> es una herramienta incre\u00edblemente \u00fatil en CSS, especialmente cuando se trata de alineaci\u00f3n vertical. Aunque existe desde hace tiempo, sigue siendo muy relevante, especialmente para alinear elementos a lo largo del eje transversal (que, dependiendo de tu dise\u00f1o, puede ser vertical).<\/p>\n<h3>Utilizar alinear-elementos para la alineaci\u00f3n vertical<\/h3>\n<p>La propiedad <code>align-items<\/code> de Flexbox es tu recurso para alinear elementos verticalmente dentro de un contenedor. Funciona cuando tu contenedor flex tiene un <code>flex-direction<\/code> de filas. Esta propiedad te permite controlar c\u00f3mo se alinean todos los hijos de un contenedor flex a lo largo del eje transversal.<\/p>\n<p>Por ejemplo, si tienes un mont\u00f3n de elementos en un contenedor flexible y quieres que todos est\u00e9n centrados verticalmente, utilizar\u00edas <code>align-items: center;<\/code>. Estas son las principales opciones que tienes con <code>align-items<\/code>:<\/p>\n<ul>\n<li><code>flex-start<\/code>: Alinea los elementos al inicio del contenedor.<\/li>\n<li><code>flex-end<\/code>: Alinea los elementos al final del contenedor.<\/li>\n<li><code>center<\/code>: Centra los elementos en el contenedor.<\/li>\n<li><code>baseline<\/code>: Alinea los elementos en funci\u00f3n de su l\u00ednea base.<\/li>\n<li><code>stretch<\/code>: Estira los elementos para llenar el contenedor (comportamiento por defecto).<\/li>\n<\/ul>\n<h3>Utilizar el autoalineamiento para el control individual<\/h3>\n<p>Aunque <code>align-items<\/code> es genial para alinear todos los elementos de un contenedor, a veces quieres alinear s\u00f3lo un elemento de forma diferente. Por eso es tan \u00fatil <code>align-self<\/code>. Esta propiedad te permite anular el valor de <code>align-items<\/code> para elementos flexibles individuales. Acepta los mismos valores que <code>align-items<\/code>.<\/p>\n<p>Por ejemplo, supongamos que tienes un contenedor flexible con <code>align-items: center;<\/code> pero hay un elemento que quieres alinear al principio. Puedes aplicar <code>align-self: flex-start;<\/code> a ese elemento espec\u00edfico. Es una forma estupenda de tener un control preciso sobre la alineaci\u00f3n de elementos individuales.<\/p>\n<p>Sin embargo, puede ser muy \u00fatil verlo en acci\u00f3n.<\/p>\n<p>Supongamos que est\u00e1s dise\u00f1ando una barra de navegaci\u00f3n con un logotipo, algunos enlaces y una barra de b\u00fasqueda. Quieres que los enlaces est\u00e9n centrados, el logotipo alineado en la parte superior y la barra de b\u00fasqueda alineada en la parte inferior.<\/p>\n<p>As\u00ed es como podr\u00edas hacerlo:<\/p>\n<pre><code class=\"language-css\">.nav-container {\n\ndisplay: flex;\n\nflex-direction: row;\n\nalign-items: center;\n\n}\n\n.logo {\n\nalign-self: flex-start;\n\n}\n\n.search-bar {\n\nalign-self: flex-end;\n\n}<\/code><\/pre>\n<p>En este ejemplo, el <code>.nav-container<\/code> es un contenedor flexible con sus elementos generalmente centrados. El logotipo y la barra de b\u00fasqueda, sin embargo, se salen de esta regla general, aline\u00e1ndose al principio y al final del contenedor, respectivamente.<\/p>\n<h2>Funciones de color modernas en CSS<\/h2>\n<p>Las funciones de color modernas en CSS han evolucionado significativamente, ofreciendo formas m\u00e1s sofisticadas de definir y manipular los colores en el dise\u00f1o web. Profundicemos en algunas de estas funciones:<\/p>\n<h3>1. rgb() y rgba()<\/h3>\n<p>La funci\u00f3n <code>rgb()<\/code> es una forma tradicional de definir colores utilizando los canales Rojo, Verde y Azul. Cada canal puede tener un valor entre 0 y 255. La variante <code>rgba()<\/code> a\u00f1ade un canal alfa para la opacidad, siendo 1 totalmente opaco y 0 totalmente transparente.<\/p>\n<p>Deber\u00eda tener este aspecto<\/p>\n<pre><code class=\"language-css\">.example {\n\ncolor: rgb(255, 0, 0); \/* Red *\/\n\nbackground-color: rgba(255, 0, 0, 0.5); \/* Semi-transparent red *\/\n\n}<\/code><\/pre>\n<h3>2. hsl() y hsla()<\/h3>\n<p><code>hsl()<\/code> representan los colores en t\u00e9rminos de Tono, Saturaci\u00f3n y Luminosidad, lo que hace m\u00e1s intuitiva la selecci\u00f3n de variaciones de color. Al igual que <code>rgba()<\/code>, <code>hsla()<\/code> incluye un canal alfa para la opacidad. As\u00ed<\/p>\n<pre><code class=\"language-css\">.example {\n\ncolor: hsl(120, 100%, 50%); \/* Green *\/\n\nbackground-color: hsla(120, 100%, 50%, 0.3); \/* Semi-transparent green *\/\n\n}<\/code><\/pre>\n<h3>3. oklch() y oklab()<\/h3>\n<p><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/CSS\/color_value\/oklch\"><code>oklch()<\/code><\/a> y <code>oklab()<\/code> son adiciones m\u00e1s recientes a las funciones de color CSS. Se basan en el <a href=\"https:\/\/www.hunterlab.com\/blog\/what-is-cielab-color-space\/\" target=\"_blank\" rel=\"noopener noreferrer\">espacio de color CIELAB<\/a>, que est\u00e1 dise\u00f1ado para ser perceptualmente uniforme. Esto significa que los cambios en los valores de color se corresponden m\u00e1s estrechamente con los cambios percibidos por el ojo humano.<\/p>\n<p>En concreto<\/p>\n<ul>\n<li><code>oklab()<\/code> se utiliza para definir los colores en un espacio perceptualmente uniforme.<\/li>\n<li><code>oklch()<\/code> es similar, pero utiliza coordenadas cil\u00edndricas (luminosidad, croma y tono).<\/li>\n<\/ul>\n<p>Estas funciones permiten una manipulaci\u00f3n del color m\u00e1s precisa e intuitiva, especialmente para tareas como la creaci\u00f3n de gradientes de color suaves. Esto es lo que podr\u00eda parecer en forma de c\u00f3digo:<\/p>\n<pre><code class=\"language-css\">.example {\n\ncolor: oklch(75%, 0.25, 250); \/* A color in oklch *\/\n\nbackground-color: oklab(0.623, 0.172, -0.079); \/* A color in oklab *\/\n\n}<\/code><\/pre>\n<h3>Implementaci\u00f3n de esquemas de color avanzados<\/h3>\n<p>Con estas funciones, especialmente las m\u00e1s avanzadas <code>oklch()<\/code> y <code>oklab()<\/code>, puedes implementar intrincados esquemas de color que sean visualmente coherentes y atractivos. Ofrecen m\u00e1s control sobre c\u00f3mo se representan y perciben los colores, garantizando que tus dise\u00f1os sean est\u00e9ticamente agradables y accesibles.<\/p>\n<p>Cuando combinas estas funciones de color con caracter\u00edsticas CSS como propiedades personalizadas (variables CSS) y c\u00e1lculos, puedes desarrollar sistemas de color din\u00e1micos y flexibles que se adapten a diferentes temas, estados y entornos.<\/p>\n<p>Como los est\u00e1ndares web y la compatibilidad de los navegadores con estas funciones siguen cambiando, adoptar estas modernas funciones de color puede mejorar significativamente el dise\u00f1o visual y la experiencia de usuario de tus proyectos web.<\/p>\n<h2>Curvar el texto alrededor de las im\u00e1genes<\/h2>\n<p>La propiedad CSS <code>shape-outside<\/code> ofrece una forma creativa de <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/CSS\/shape-outside\">envolver texto alrededor de las im\u00e1genes<\/a>, contribuyendo a dise\u00f1os m\u00e1s din\u00e1micos y visualmente interesantes y a un <a href=\"https:\/\/kinsta.com\/es\/blog\/estilo-de-imagen-css\/\">estilo de imagen<\/a> m\u00e1s avanzado.<\/p>\n<p>Te permite definir una forma alrededor de la cual debe envolverse el contenido en l\u00ednea. Esto es \u00fatil para envolver texto alrededor de im\u00e1genes de forma no rectangular, creando composiciones m\u00e1s org\u00e1nicas y visualmente m\u00e1s atractivas que la envoltura de texto rectangular est\u00e1ndar.<\/p>\n<h3>\u00bfC\u00f3mo funciona?<\/h3>\n<p>Puedes definir varias formas como c\u00edrculos, elipses y pol\u00edgonos, o incluso utilizar el canal alfa de una imagen para dictar la forma.<\/p>\n<p>La propiedad <code>shape-outside<\/code> se aplica normalmente a elementos flotados. Y cuando haces flotar una imagen y aplicas un <code>shape-outside<\/code>, el texto se envuelve alrededor de ella seg\u00fan la forma definida.<\/p>\n<p>Aqu\u00ed tienes un ejemplo b\u00e1sico de uso de forma-exterior con un c\u00edrculo:<\/p>\n<pre><code class=\"language-css\">.image {\n\nfloat: left;\n\nshape-outside: circle(50%);\n\nwidth: 200px;\n\nheight: 200px;\n\nmargin-right: 15px;\n\n}<\/code><\/pre>\n<p>En este ejemplo, la clase <code>.image<\/code> se aplica a un elemento imagen. Est\u00e1 flotando a la izquierda, y el <code>shape-outside: circle(50%);<\/code> crea una forma circular alrededor de la cual se envolver\u00e1 el texto. Utilizar <code>shape-outside<\/code> de forma eficaz puede abrir nuevas posibilidades en tus dise\u00f1os, ya que permite que el texto fluya alrededor de formas complejas, haciendo posible crear dise\u00f1os tipo revista y p\u00e1ginas web visualmente ricas.<\/p>\n<h2>Modos de fusi\u00f3n CSS<\/h2>\n<p>Los modos de fusi\u00f3n CSS ofrecen una potente forma de mezclar colores e im\u00e1genes, creando efectos visuales \u00fanicos que tambi\u00e9n pueden mejorar tus dise\u00f1os. Estos modos de mezcla te permiten crear atractivos efectos de texto, superposiciones de im\u00e1genes e intrincados patrones de fondo. Para utilizar <code>background-blend-mode<\/code>, hablemos primero de lo que hace. Esta propiedad se utiliza para definir c\u00f3mo deben mezclarse las im\u00e1genes y el color de fondo de un elemento. Por ejemplo, si tienes una imagen de fondo y un color de fondo, puedes mezclarlos utilizando diferentes modos de mezcla como multiplicar, pantalla, superponer, etc. Este es el aspecto que podr\u00eda tener el c\u00f3digo<\/p>\n<pre><code class=\"language-css\">.element {\n\nbackground-image: url('image.jpg');\n\nbackground-color: blue;\n\nbackground-blend-mode: multiply;\n\n}<\/code><\/pre>\n<p>Ahora <code>mix-blend-mode<\/code> funciona mezclando el contenido de un elemento (incluyendo im\u00e1genes y texto) con su fondo. Esto es especialmente \u00fatil para <a href=\"https:\/\/kinsta.com\/es\/blog\/contorno-texto-css\/\">efectos de texto<\/a> o para superponer una imagen sobre otra. As\u00ed<\/p>\n<pre><code class=\"language-css\">&lt;\n\n.element {\n\nmix-blend-mode: screen;\n\n}<\/code><\/pre>\n<h3>Modos de fusi\u00f3n populares<\/h3>\n<p>Como referencia, aqu\u00ed tienes algunos de los modos de fusi\u00f3n m\u00e1s populares que necesitar\u00e1s conocer para utilizar este efecto correctamente:<\/p>\n<ul>\n<li><strong>Multiplicar<\/strong>: Multiplica los colores de la capa de mezcla y de la capa base, dando como resultado un color m\u00e1s oscuro.<\/li>\n<li><strong>Malla<\/strong>: Aclara los colores, al contrario que multiplicar. Es \u00fatil para crear efectos de luz.<\/li>\n<li><strong>Superponer<\/strong>: Combina los modos de fusi\u00f3n multiplicar y pantalla. Las partes claras de la imagen se aclaran y las oscuras se oscurecen.<\/li>\n<li><strong>Oscurecer<\/strong> y aclarar: Selecciona el color m\u00e1s oscuro o m\u00e1s claro, respectivamente.<\/li>\n<li><strong>Esquivar color y quemar color<\/strong>: Aclara u oscurece el color base para reflejar el color de fusi\u00f3n.<\/li>\n<li><strong>Diferencia y exclusi\u00f3n<\/strong>: Se utilizan para crear efectos de color m\u00e1s art\u00edsticos e invertidos.<\/li>\n<\/ul>\n<h2>Adaptarse a las preferencias del usuario<\/h2>\n<p>Adaptarse a las preferencias del usuario en el dise\u00f1o web es un aspecto cr\u00edtico para crear sitios web accesibles y f\u00e1ciles de usar. Las consultas de medios CSS para preferencias como <a href=\"https:\/\/www.smashingmagazine.com\/2023\/07\/writing-css-2023\/\"><code>prefers-color-scheme<\/code><\/a> y <code>prefers-reduced-motion<\/code> desempe\u00f1an un papel importante en este proceso.<\/p>\n<p>Exploremos estos conceptos.<\/p>\n<h3>prefiere-color-esquema<\/h3>\n<p>Esta consulta de medios se utiliza para detectar si el usuario ha solicitado al sistema que utilice un tema de color claro u oscuro. Es una forma c\u00f3moda de implementar un modo oscuro en el dise\u00f1o de un sitio web.<\/p>\n<p>Puedes utilizar <code>prefers-color-scheme<\/code> para especificar estilos diferentes para los modos claro y oscuro.<\/p>\n<p>Por ejemplo:<\/p>\n<pre><code class=\"language-css\">\/* Default light mode styles *\/\n\nbody {\n\nbackground-color: white;\n\ncolor: black;\n\n}\n\n\/* Dark mode styles *\/\n\n@media (prefers-color-scheme: dark) {\n\nbody {\n\nbackground-color: black;\n\ncolor: white;\n\n}\n\n}<\/code><\/pre>\n<p>En este fragmento, los estilos por defecto se aplican al modo claro, mientras que los estilos dentro de la consulta <code>@media<\/code> se aplican cuando el usuario prefiere un esquema de color oscuro.<\/p>\n<h3>prefiere-movimiento-reducido<\/h3>\n<p>Esta consulta de medios est\u00e1 dise\u00f1ada para detectar si el usuario ha solicitado al sistema que minimice la cantidad de animaci\u00f3n o movimiento que utiliza. Es esencial para los usuarios que experimentan mareos por movimiento o tienen trastornos vestibulares.<\/p>\n<p>Puedes utilizar <code>prefers-reduced-motion<\/code> para reducir o eliminar animaciones y transiciones:<\/p>\n<pre><code class=\"language-css\">\/* Standard animations *\/\n\n.animate {\n\ntransition: transform 0.3s ease;\n\n}\n\n\/* Reduced motion *\/\n\n@media (prefers-reduced-motion: reduce) {\n\n.animate {\n\ntransition: none;\n\n}\n\n}<\/code><\/pre>\n<p>Aqu\u00ed ver\u00e1s que las animaciones se desactivan cuando el usuario ha indicado su preferencia por el movimiento reducido.<\/p>\n<p>Incorporar <code>prefers-color-scheme<\/code> y <code>prefers-reduced-motion<\/code> a tu CSS es un paso hacia una web m\u00e1s inclusiva y f\u00e1cil de usar, que garantiza que tu sitio sea accesible y c\u00f3modo para una amplia gama de usuarios con diferentes necesidades y preferencias.<\/p>\n<h2>Utiliza los pseudoselectores :is() y :where()<\/h2>\n<p>Los pseudoselectores <code>:is()<\/code> y <code>:where()<\/code> de CSS son herramientas avanzadas para gestionar la especificidad y simplificar las complejas cadenas de selectores. Exploremos c\u00f3mo funcionan y veamos algunos ejemplos reales.<\/p>\n<h3>pseudoselector :is()<\/h3>\n<p>Este selector te permite apuntar a varios elementos con una sola regla y reduce la repetici\u00f3n de selectores similares. La especificidad de la pseudoclase <code>:is()<\/code> es la especificidad del selector m\u00e1s espec\u00edfico de sus argumentos.<\/p>\n<pre><code class=\"language-css\">\/* Selects any paragraph or heading inside an article *\/\n\narticle :is(h1, h2, h3, p) {\n\ncolor: blue;\n\n}<\/code><\/pre>\n<h3>pseudoselector :where()<\/h3>\n<p>\u00c9ste es similar a <code>:is()<\/code>, pero tiene una diferencia clave. <code>:where()<\/code> siempre tiene una especificidad de cero. Esto lo hace \u00fatil para anular estilos sin aumentar la especificidad. En uso, podr\u00eda ser algo parecido a esto:<\/p>\n<pre><code class=\"language-css\">\/* Selects any paragraph or heading, but with no added specificity *\/\n\n:where(article, section) p {\n\nmargin-bottom: 1em;\n\n}<\/code><\/pre>\n<p>Utilizando <code>:is()<\/code> y <code>:where()<\/code>, puedes elaborar hojas de estilo m\u00e1s flexibles y f\u00e1ciles de mantener, especialmente cuando se trata de dise\u00f1os complejos. Por ejemplo, estos pseudoselectores pueden ser \u00fatiles si necesitas:<\/p>\n<ul>\n<li><strong>Simplificar los selectores anidados<\/strong>: Pueden simplificar selectores anidados profundamente o selectores agrupados, haciendo tu CSS m\u00e1s legible y f\u00e1cil de mantener.<\/li>\n<li><strong>Anular<\/strong> estilos: <code>:where()<\/code> es genial para crear estilos base que pueden anularse f\u00e1cilmente sin preocuparse por la especificidad.<\/li>\n<li><strong>Reutilizar<\/strong> estilos: Ambos pseudoselectores permiten crear estilos m\u00e1s modulares y reutilizables, ya que puedes agrupar varios elementos bajo una misma regla.<\/li>\n<\/ul>\n<p>Para una aplicaci\u00f3n pr\u00e1ctica de esto en acci\u00f3n, imagina un men\u00fa de navegaci\u00f3n con diferentes secciones. Puedes utilizar <code>:is()<\/code> para aplicar un estilo uniforme a todos los enlaces del men\u00fa, independientemente de su nivel de anidamiento, como se indica a continuaci\u00f3n:<\/p>\n<pre><code class=\"language-css\">nav :is(ul, ol, div) &gt; li &gt; a {\n\npadding: 10px;\n\ncolor: white;\n\n}<\/code><\/pre>\n<h2>Resumen<\/h2>\n<p>Desde la elegancia de las transiciones CSS que dan vida a las interfaces de usuario hasta el poder de las transformaciones 3D, esperamos que ahora comprendas mejor algunas de las t\u00e9cnicas CSS m\u00e1s avanzadas de las que dispones en 2026 y m\u00e1s all\u00e1.<\/p>\n<p>Esta gu\u00eda ilumina estas t\u00e9cnicas avanzadas y subraya su importancia en la elaboraci\u00f3n de dise\u00f1os web con capacidad de respuesta, f\u00e1ciles de usar y visualmente atractivos. Y no importa cu\u00e1l decidas utilizar, recuerda dar prioridad a la accesibilidad y al <a href=\"https:\/\/kinsta.com\/es\/blog\/optimizar-css\/\">rendimiento de CSS<\/a> en todo lo que hagas.<\/p>\n<p>\u00bfUtilizas actualmente alguna de estas t\u00e9cnicas CSS avanzadas? \u00bfTienes recomendaciones para probar otras? No dudes en hac\u00e9rnoslo saber.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>El CSS ya no se limita a hacer que los sitios parezcan bonitos. Ha evolucionado hasta convertirse en una herramienta que da vida a los sitios &#8230;<\/p>\n","protected":false},"author":199,"featured_media":73074,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[1334,1336],"class_list":["post-73073","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-diseno-web","topic-lenguajes-desarrollo-web"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Dominar las t\u00e9cnicas CSS avanzadas - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"Si est\u00e1s preparado para ir m\u00e1s all\u00e1 de lo b\u00e1sico, esta colecci\u00f3n de t\u00e9cnicas avanzadas de CSS te ayudar\u00e1 a hacer avanzar tus dise\u00f1os.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/es\/blog\/tecnicas-advanzadas-css\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Dominar las t\u00e9cnicas CSS avanzadas: profundiza en las transiciones, animaciones y transformaciones\" \/>\n<meta property=\"og:description\" content=\"Si est\u00e1s preparado para ir m\u00e1s all\u00e1 de lo b\u00e1sico, esta colecci\u00f3n de t\u00e9cnicas avanzadas de CSS te ayudar\u00e1 a hacer avanzar tus dise\u00f1os.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/es\/blog\/tecnicas-advanzadas-css\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinsta.es\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-01-22T11:08:22+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-01-29T09:45:48+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/01\/wp-advanced-css-techniques.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Jeremy Holcombe\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Si est\u00e1s preparado para ir m\u00e1s all\u00e1 de lo b\u00e1sico, esta colecci\u00f3n de t\u00e9cnicas avanzadas de CSS te ayudar\u00e1 a hacer avanzar tus dise\u00f1os.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/01\/wp-advanced-css-techniques.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@Kinsta_ES\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_ES\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeremy Holcombe\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"15 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/tecnicas-advanzadas-css\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/tecnicas-advanzadas-css\/\"},\"author\":{\"name\":\"Jeremy Holcombe\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21\"},\"headline\":\"Dominar las t\u00e9cnicas CSS avanzadas: profundiza en las transiciones, animaciones y transformaciones\",\"datePublished\":\"2024-01-22T11:08:22+00:00\",\"dateModified\":\"2024-01-29T09:45:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/tecnicas-advanzadas-css\/\"},\"wordCount\":3266,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/es\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/tecnicas-advanzadas-css\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/01\/wp-advanced-css-techniques.jpg\",\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/es\/blog\/tecnicas-advanzadas-css\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/tecnicas-advanzadas-css\/\",\"url\":\"https:\/\/kinsta.com\/es\/blog\/tecnicas-advanzadas-css\/\",\"name\":\"Dominar las t\u00e9cnicas CSS avanzadas - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/es\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/tecnicas-advanzadas-css\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/tecnicas-advanzadas-css\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/01\/wp-advanced-css-techniques.jpg\",\"datePublished\":\"2024-01-22T11:08:22+00:00\",\"dateModified\":\"2024-01-29T09:45:48+00:00\",\"description\":\"Si est\u00e1s preparado para ir m\u00e1s all\u00e1 de lo b\u00e1sico, esta colecci\u00f3n de t\u00e9cnicas avanzadas de CSS te ayudar\u00e1 a hacer avanzar tus dise\u00f1os.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/tecnicas-advanzadas-css\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/es\/blog\/tecnicas-advanzadas-css\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/tecnicas-advanzadas-css\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/01\/wp-advanced-css-techniques.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/01\/wp-advanced-css-techniques.jpg\",\"width\":1200,\"height\":628},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/tecnicas-advanzadas-css\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/es\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Dise\u00f1o Web\",\"item\":\"https:\/\/kinsta.com\/es\/secciones\/diseno-web\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Dominar las t\u00e9cnicas CSS avanzadas: profundiza en las transiciones, animaciones y transformaciones\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/es\/#website\",\"url\":\"https:\/\/kinsta.com\/es\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Soluciones de alojamiento premium, r\u00e1pidas y seguras\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/es\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/es\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/es\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/es\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinsta.es\/\",\"https:\/\/x.com\/Kinsta_ES\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21\",\"name\":\"Jeremy Holcombe\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g\",\"caption\":\"Jeremy Holcombe\"},\"description\":\"Senior Editor at Kinsta, WordPress Web Developer, and Content Writer. Outside of all things WordPress, I enjoy the beach, golf, and movies. I also have tall people problems.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/jeremyholcombe\/\"],\"url\":\"https:\/\/kinsta.com\/es\/blog\/author\/jeremyholcombe\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Dominar las t\u00e9cnicas CSS avanzadas - Kinsta\u00ae","description":"Si est\u00e1s preparado para ir m\u00e1s all\u00e1 de lo b\u00e1sico, esta colecci\u00f3n de t\u00e9cnicas avanzadas de CSS te ayudar\u00e1 a hacer avanzar tus dise\u00f1os.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/es\/blog\/tecnicas-advanzadas-css\/","og_locale":"es_ES","og_type":"article","og_title":"Dominar las t\u00e9cnicas CSS avanzadas: profundiza en las transiciones, animaciones y transformaciones","og_description":"Si est\u00e1s preparado para ir m\u00e1s all\u00e1 de lo b\u00e1sico, esta colecci\u00f3n de t\u00e9cnicas avanzadas de CSS te ayudar\u00e1 a hacer avanzar tus dise\u00f1os.","og_url":"https:\/\/kinsta.com\/es\/blog\/tecnicas-advanzadas-css\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinsta.es\/","article_published_time":"2024-01-22T11:08:22+00:00","article_modified_time":"2024-01-29T09:45:48+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/01\/wp-advanced-css-techniques.jpg","type":"image\/jpeg"}],"author":"Jeremy Holcombe","twitter_card":"summary_large_image","twitter_description":"Si est\u00e1s preparado para ir m\u00e1s all\u00e1 de lo b\u00e1sico, esta colecci\u00f3n de t\u00e9cnicas avanzadas de CSS te ayudar\u00e1 a hacer avanzar tus dise\u00f1os.","twitter_image":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/01\/wp-advanced-css-techniques.jpg","twitter_creator":"@Kinsta_ES","twitter_site":"@Kinsta_ES","twitter_misc":{"Escrito por":"Jeremy Holcombe","Tiempo de lectura":"15 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/es\/blog\/tecnicas-advanzadas-css\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/es\/blog\/tecnicas-advanzadas-css\/"},"author":{"name":"Jeremy Holcombe","@id":"https:\/\/kinsta.com\/es\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21"},"headline":"Dominar las t\u00e9cnicas CSS avanzadas: profundiza en las transiciones, animaciones y transformaciones","datePublished":"2024-01-22T11:08:22+00:00","dateModified":"2024-01-29T09:45:48+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/es\/blog\/tecnicas-advanzadas-css\/"},"wordCount":3266,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/es\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/es\/blog\/tecnicas-advanzadas-css\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/01\/wp-advanced-css-techniques.jpg","inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/es\/blog\/tecnicas-advanzadas-css\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/es\/blog\/tecnicas-advanzadas-css\/","url":"https:\/\/kinsta.com\/es\/blog\/tecnicas-advanzadas-css\/","name":"Dominar las t\u00e9cnicas CSS avanzadas - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/es\/blog\/tecnicas-advanzadas-css\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/es\/blog\/tecnicas-advanzadas-css\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/01\/wp-advanced-css-techniques.jpg","datePublished":"2024-01-22T11:08:22+00:00","dateModified":"2024-01-29T09:45:48+00:00","description":"Si est\u00e1s preparado para ir m\u00e1s all\u00e1 de lo b\u00e1sico, esta colecci\u00f3n de t\u00e9cnicas avanzadas de CSS te ayudar\u00e1 a hacer avanzar tus dise\u00f1os.","breadcrumb":{"@id":"https:\/\/kinsta.com\/es\/blog\/tecnicas-advanzadas-css\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/es\/blog\/tecnicas-advanzadas-css\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kinsta.com\/es\/blog\/tecnicas-advanzadas-css\/#primaryimage","url":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/01\/wp-advanced-css-techniques.jpg","contentUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/01\/wp-advanced-css-techniques.jpg","width":1200,"height":628},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/es\/blog\/tecnicas-advanzadas-css\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/es\/"},{"@type":"ListItem","position":2,"name":"Dise\u00f1o Web","item":"https:\/\/kinsta.com\/es\/secciones\/diseno-web\/"},{"@type":"ListItem","position":3,"name":"Dominar las t\u00e9cnicas CSS avanzadas: profundiza en las transiciones, animaciones y transformaciones"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/es\/#website","url":"https:\/\/kinsta.com\/es\/","name":"Kinsta\u00ae","description":"Soluciones de alojamiento premium, r\u00e1pidas y seguras","publisher":{"@id":"https:\/\/kinsta.com\/es\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/es\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/es\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/es\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinsta.es\/","https:\/\/x.com\/Kinsta_ES","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/es\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21","name":"Jeremy Holcombe","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kinsta.com\/es\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g","caption":"Jeremy Holcombe"},"description":"Senior Editor at Kinsta, WordPress Web Developer, and Content Writer. Outside of all things WordPress, I enjoy the beach, golf, and movies. I also have tall people problems.","sameAs":["https:\/\/www.linkedin.com\/in\/jeremyholcombe\/"],"url":"https:\/\/kinsta.com\/es\/blog\/author\/jeremyholcombe\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts\/73073","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/users\/199"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/comments?post=73073"}],"version-history":[{"count":6,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts\/73073\/revisions"}],"predecessor-version":[{"id":73167,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts\/73073\/revisions\/73167"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/73073\/translations\/en"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/73073\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/73073\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/73073\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/73073\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/73073\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/73073\/translations\/es"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/73073\/translations\/it"},{"href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/73073\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/media\/73074"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/media?parent=73073"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/tags?post=73073"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/topic?post=73073"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}