Cerrar menu
Tutoriales En Linea
  • Tutoriales
    • Aprendizaje
    • Video Tutorial
    • Manuales
    • Hagalo usted mismo
    • Explorar todo
  • Adobe
    • After Effects
    • Dreamweaver
    • Premiere Pro CC
    • Photoshop
    • Photoshop Mix
    • Lightroom
    • Illustrator
    • Adobe Muse
    • Creative Cloud
  • Android
    • Developer Android
    • Aplicaciones
    • Android Studio
    • Android Wear
    • Desarrolladores
    • SDK Platform-Tools
    • ADB...depuración Bridge
    • Fastboot
    • Root
    • Recovery
  • Apple
    • iPhone y iPad
    • iPhone
    • iPad
    • Mac OS
    • iCloud
    • iTunes
  • Cursos
    • Actívate
    • Autoempleo
    • Idiomas
    • Curso De HTML
    • Curso de C++
    • Javascript
    • jQuery
    • Matematicas
    • Programacion
    • Python
    • Udacity
    • Diseño Web adaptativo
  • Ciberseguridad
    • Malware
    • Ransomware
    • Virus
    • Troyano
    • Dorkbot
    • Filecoders
    • keylogger
    • Spyware
    • Jackware
    • DDoS
    • HackerOne
    • Interpol
  • Criptomonedas
    • Blockchain
    • Mineria de Criptomonedas
    • Bitcoin (BTC)
    • Bitcoin Cash (BCH)
    • DASH (Dash)
    • Dogecoin (Doge)
    • Ethereum (ETH)
    • Litecoin (LTC)
    • Monero (XMR)
    • Ripple (XRP)
    • Zcash (ZEC)
    • Forex
    • Trading
  • Desarrollo Web
    • Sistema de gestion de contenidos
    • AMP
    • Datalife Engine
    • Blogger
    • WordPress
    • Joomla
    • Bootstrap
    • Plantillas
    • @font-face
    • Schema
    • Website
    • Desarrolladores
    • Lenguaje Web
  • Diseño Web
    • Web Responsive
    • Lenguaje Web
    • Datos estructurados
    • HTML
    • CSS3
    • JavaScript
    • Ajax
    • jQuery
    • PHP
  • Entretenimiento
  • Encuestas
    • GlobalTestMarket
    • Centro de opinion
    • Ipsos i-Say
    • Triaba
    • opinea
    • Toluna
    • YouGov
    • ClixSense
    • ySense
    • Cint
    • Beruby
  • Electricidad
  • Electronica
  • Ganar dinero comprando
    • CashbackDeals
    • Cashback
    • Por ir de compras
    • Aklamio
    • Intercambio de tráfico
    • Justificante de pagos
    • Webs estafas
  • Google
    • Google Pay
    • Adsense
    • Gmail
    • Google Apps
    • Google Chrome
    • Google Cloud Platform
    • Google Consumer Surveys
    • Google Desarrolladores
    • Google Fit
    • Google Maps
    • Google Photos
    • Google Play
    • Google Translation
    • DoubleClick
    • YouTube
    • Chromebooks
  • Marketing
    • SEM
    • SEO
    • Posicionamiento
    • Contenido
    • Publisuites
    • Space Content
    • Coobis
    • Marketing
  • Computadora u ordenador
    • Sistemas operativos
      • Windows
      • Mac OS
      • Android
      • Linux
      • Ubuntu
      • Kali Linux
      • Wifislax
    • hardware
    • Software
    • BIOS
    • Unidad de disco duro
    • Programacion
    • Dispositivos
    • Internet
  • Ofimática
    • Microsoft
    • Suite Ofimatica
    • Access
    • Word
    • Excel
    • Powerpoint
    • Outlook
    • Microsoft Publisher
  • PTC
    • No pierdas tiempo con estas web
  • Redes Sociales
    • Delicious
    • Facebook
    • Instagram
    • linkedin
    • Snapchat
    • TikTok
    • Twitter
    • Pinterest
    • Spotify
    • Vkontakte - VK
    • WhatsApp
  • Smartphone
    • Telefonos
    • Telefonia movil y telecomunicaciones
    • Desbloquear
    • Códigos NCK
    • Liberar
    • Tarjeta SIM
    • Tablet
  • Sitio Web
    • Dominios
    • Hosting
    • Servidores
    • Demo DLE
    • Documentación sobre Datalife Engine
    • Modulos DLE
    • Hack
    • Optimizacion
    • Google Adsense
    • Plantillas
  • Tips
    • Cabello
    • Consejos
    • Cremas
    • Cosmético
    • Cuerpo
    • Dieta
    • Exfoliantes
    • Entrenamiento
    • Ejercicio
    • Estilo
    • Fitness
    • Habitos
    • Hidratante
    • Look
    • Maquillaje
    • Moda
    • Piel Radiante
    • Recetas
    • Ropa
    • Rutina
    • Salud
    • Tratamientos
  • Trabajos
    • Atencion al cliente
    • Asistente virtual
    • Transcripcíon
    • Transcripcíones medica
    • Entrada de datos
    • De edicion y correccion
    • Mystery Shopping
    • Micro trabajos
    • Contabilidad
    • Tutoria y aprendizaje
    • Mas ingresos extras
    • Git
    • GitHub
    • Criptografia
    • Deep Web
    • Hacker
    • FTP
    • Indexar
    • Newsletter
    • Redes y VPN
    • Herramientas online
  • Windows
    • Skype
    • Windows
    • Windows 11
    • Windows 10
    • Windows 8
    • Windows 7
    • Puerta trasera de Windows
    • Microsoft Edge
Facebook X (Twitter) Instagram
  • Sobre nosotros
  • Últimos artículos
  • Herramientas SEO
  • Ver mas temas
  • Más sitios que te gustarán
Facebook X (Twitter) Instagram Pinterest Youtube
  • Secciones
    1. Android
    2. Adobe
    3. Bricolaje
    4. Bachillerato
    5. Cursos
    6. Criptomonedas
    7. Criptografia
    1. Diseño Web
    2. Encuestas
    3. Empleo
    4. Electricidad
    5. Electronica
    6. Forex
    7. Fisica
    1. Google
    2. Hardware
    3. Herramientas Ofimaticas
    4. Herramientas
    5. Internet
    6. Idiomas
    7. IPTV
    1. Programacion
    2. Libros
    3. Microsoft
    4. Manuales
    5. Matematica
    6. Newsletter
    7. Optimizacion
    1. Redes Sociales
    2. Software
    3. Seguridad
    4. Telefonia
    5. WebSite
    6. Ver todas las categorias
    7. Post promocionado
  • Smartphone

    Comprendre les Différences entre les Chargeurs USB et les Chargeurs USB-C : Un Guide Complet

    Huawei Smartphones: Las Mejores Ofertas del Black Friday para Aprovechar

    Gadgets imprescindibles para tu configuración de oficina en casa

    ¡Descubre las tendencias más emocionantes en el mundo de los videojuegos!

    Tendencias en sistemas operativos en smartphone

  • Tecnología
    1. Móviles
    2. Ordenadores
    3. Software
    4. Hardware
    5. Seguridad
    6. Ver todo

    Comprendre les Différences entre les Chargeurs USB et les Chargeurs USB-C : Un Guide Complet

    Huawei Smartphones: Las Mejores Ofertas del Black Friday para Aprovechar

    Gadgets imprescindibles para tu configuración de oficina en casa

    ¡Descubre las tendencias más emocionantes en el mundo de los videojuegos!

    Cómo limpiar la unidad C de archivos innecesarios

    Descubre el misterioso mundo del hash de archivos: ¡todo lo que necesitas saber!

    Los componentes fundamentales que todo PC debería tener

    Que es la tecla TAB

    Cifrado | Seguridad Local

    Maximiza tu productividad: Descubre el sistema interactivo que revolucionará la gestión de proyectos en tu empresa

    Cómo limpiar la unidad C de archivos innecesarios

    Como jugar online y resolver un sudoku

    Que es la tecla TAB

    Cómo deshabilitar la desfragmentación de SSD y HDD en Windows 10 y 11

    Benefits Of Vertical Dual Monitors For Coding And Programming

    AMD ha identificado la causa de la quema de los procesadores Ryzen 7000 y ha lanzado un nuevo AGESA para corregir el problema

    Cifrado | Seguridad Local

    Descubre el misterioso mundo del hash de archivos: ¡todo lo que necesitas saber!

    Virus en el sistema DataLife Engine (DLE) y cómo tratarlos

    La ciberseguridad: Vital Para Las Apuestas Online en España

    ¡Descubre las tendencias más emocionantes en el mundo de los videojuegos!

    ¿Aburrido de tu viejo televisor? Descubre las últimas tendencias en televisores

    Generador de Video IA: La Revolución en la Creación Audiovisual

    Los últimos celulares para que estés a la última

  • Estilo de vida
    1. Entrenamiento
    2. Maquillaje
    3. Dieta
    4. Moda
    5. Trucos y tips
    6. Ver todo

    Desarrolla un cuerpo fuerte y saludable

    ¿Qué es la forma física?

    Mejora los resultados de tu entrenamiento de estabilidad y fuerza

    Consejos para maximizar las caminatas diarias

    ¿Por qué es importante preparar la piel antes de maquillarla?

    Consejos para aplicar pestañas postizas

    Consejos para una piel perfecta este invierno

    La nutrición y un cabello saludable

    Cosas que le pasan a tu cuerpo cuando comes salmón todos los días

    Batidos de proteínas pueden ayudar a mejorar sus hábitos alimenticios

    Batidos de proteinas - Una guía para principiantes

    Snacks nutritivos para cada antojo

    Inspiración de traje de otoño

    La dura verdad sobre las modelos de talla grande

    Razones por las que las marcas de moda de lujo son tan caras

    Cuales son las mejores frutas para adelgazar

    Como enseñar a leer y a escribir

    Como generar cuentas Disneyplus

    Calcular porcentajes con la Calculadora de Windows 10

    Bricolaje para la decoración del hogar

    Top 10 de posturas de yoga

    ¿Por qué es importante preparar la piel antes de maquillarla?

    Inspiración de traje de otoño

    Consejos de belleza para lucir fresca en el verano

  • Marketing

    ¿Sirven de algo los diseñadores Web?… ¿y los redactores de contenido?

    ¿Qué es un Link Dofollow?

    ¿Qué es Nofollow?

    ¿Qué es el remarketing?

    ¿Qué es el posicionamiento web (SEO) y lo necesito para mi sitio web?

  • Juegos

    Para qué se pueden usar las Gafas VR PS4

    La nueva generación de realidad virtual de PlayStation®VR2 y PlayStation®5

    Colaboración entre Sony INZONE y EXCEL Esports

    Sony prohíbe cuatro juegos de terceros en Xbox

    Prepárate para el futuro: Project Trinity llega a finales de 2024

  • Herramientas
Búsqueda extendida

Escriba arriba y presione Enter para buscar.

¡Bienvenido de nuevo!

Inicie sesión o Regístrate ahora

VK

o con Email

¿Has olvidado tu contraseña?

Diseño Web » Introducción a las variables CSS

Introducción a las variables CSS


0 Agosto 04, 2019
Compartir

Compartir
Twitter Pinterest LinkedIn Tumblr WhatsApp Email
Introducción a las variables CSSLas variables CSS, oficialmente llamadas propiedades CSS personalizadas, ofrecen un amplio abanico de posibilidades imposibles de conseguir en CSS con anterioridad, a no ser que se utilizase algún preprocesador, como pueden ser SASS o LESS.

No obstante, variables y preprocesadores no son sustitutivos el uno del otro, sino complementarios. Por ejemplo, las variables CSS introducen la capacidad reactiva a los stylesheets. Si el valor de una variable CSS cambia, se actualizará automáticamente el estilo de todos los elementos afectados. Los preprocesadores, al ser precisamente pre, no pueden hacer esto.
Variables personalizadas en CSS3
El uso básico de variables CSS es muy sencillo. Se identifican con -- antes del nombre de la propiedad personalizada y se accede a ella con la función var(). La declaración de la variable debe ser siempre dentro de un selector CSS y es accesible en todos los selectores descendientes. Es muy habitual declarar las variables CSS en el pseudoelemento :root para que estén disponibles de forma global:
:root {
    --color-dark: #333;
}
.dark-text {
    color: var(--color-dark);
}

¿Qué son exactamente las variables CSS?


Una variable se puede entender como un contenedor que almacena un dato o valor. Si tenemos la expresión x = 5, x es el nombre de la variable y 5 es su valor. Si posteriormente tenemos la expresión x + 10, esta será evaluada como 15. Si cambiamos el valor de x, por ejemplo, x = 10, la expresión x + 10 sería evaluada como 20.

Es decir, al nombrar una variable y otorgarle un valor, podemos acceder a ese valor posteriormente en el programa, algo esencial para no tener que repetir constantemente expresiones y cálculos ya realizados, lo que permite simplificar enormemente el desarrollo.

Tan solo un detalle, las llamadas variables CSS no son técnicamente variables, pues CSS es un lenguaje declarativo. Las variables CSS son en realidad propiedades personalizadas a cuyo valor se puede acceder con la función var(). Para que se entienda, la propiedad border-radius es una propiedad CSS nativa, mientras que --border-radius-small sería una propiedad personalizada.


Cuidado con confundir la función var() de CSS con el keyword var de jаvascript. En CSS, var() se utiliza para obtener el valor de una variable; en JS, var se utiliza para declarar una variable y, opcionalmente, otorgarle un valor.

¿Cómo se utilizan las variables CSS?


Si tenemos claro que las variables CSS son en realidad propiedades personalizadas, será muy fácil recordar que se utilizan como cualquier otra propiedad, tan solo que el nombre de la propiedad lo eliges tú. El único requisito es que el nombre elegido vaya precedido por -- para que el navegador sepa que ese nombre «inventado» no es un propiedad inválida, sino una propiedad personalizada.

Por ejemplo, en el siguiente snippet se declara la variable --block-margin:
.post-body {
    --block-margin: 2rem 0;
}
Luego se obtiene el valor de esa variable con la función var():
.post-body blockquote {
    margin: var(--block-margin);
}
A la hora de poner un nombre y luego recuperarlo, te en cuenta que los nombres de propiedades diferencia mayúsculas y minúsculas: por ejemplo, --myFontSize y --myfontsize serían consideradas propiedades diferentes.
:root {
    --myvar: 2;
}
p {
    /* Variable no definida */
    font-size: var(--myVar);
}
Un detalle importante es que no se puede combinar var() con otros elementos para generar un valor, por ejemplo margin: var(--my-margin)px; sería inválido, al igual que la siguiente expresión:
:root {
    --base-font-size: 2;
}
p {
    font-size: var(--base-font-size)rem;
}
Pero se puede utilizar var() dentro de la función calc():

:root {
    --base-font-size: 2;
}
p {
    font-size: cal(var(--base-font-size) * 1rem);
}

Herencia en cascada


CSS son las siglas de Cascade Style Sheet, y es que sus propiedades se heredan en cascada, desde un elemento superior, o elemento padre, a todos los elementos descendientes, o elementos hijos. Y esta herencia en cascada afecta a todas las propiedades, también a las propiedades personalizadas.

Por ejemplo, si tenemos este CSS:
.parent {
    --margin: 5px;
}
.child {
 --margin: 5em;
 --test: 2;
}

Y este HTML:
<div class="parent">
    <div class="child"></div>
</div>
El resultado será:

  • var(--margin) igual a 5px en el elemento class="parent«
  • var(--margin) igual a 5em en el elemento class="child"
  • var(--test) igual a 2 el en elemento class="child"
  • var(--test) igual a «valor no válido» el en elemento class="parent"

En el último caso, no se puede acceder al valor de la variable --test en el elemento class="parent" porque ha sido declarada en un ámbito inferior y, como se heredan en cascada descendente, la variable no es visible en dicho elemento.

Para disponer de variables en cualquier elemento o selector CSS, es decir, tener variables CSS globales, es muy habitual que las variables CSS se declaren en el pseudoelemento :root, aunque no es obligatorio y se pueden declarar variables en cualquier elemento y tener variables CSS en scopes más específicos.

Valores no válidos


Además de los «valores no válidos» debidos a la herencia en cascada que hemos visto antes, las variables CSS pueden generar valores no válidos en tiempo de ejecución. Generalmente, los valores no válidos en CSS se identifican cuando el navegador lee el valor de una propiedad, pero en el caso de las propiedades personalizadas, el navegador no sabe donde se utilizarán al momento de leer su valor, por lo que en principio acepta cualquier valor como válido. Pero si luego la variable se utiliza en un contexto no adecuado, dará lugar a un error de tipo «valor no válido»:
:root {
    /* En principio, el valor 5px es válido */
    --my-var: 5px;
}
p {
    /* 5px en la propiedad "color" producirá un "valor no válido" */
    color: var(--my-var);
}

Valores predeterminados


Con la función var() es posible definir un valor predeterminado o fallback que será utilizado si la variable no se resuelve correctamente. Por ejemplo, si no está definida, no es accesible o tiene un valor no válido.

Para establecer un valor predeterminado, escríbelo en la función var() separado con una coma después del nombre de la variable:
:root {
    --mycolor: blue;
    --my-font-size: 2rem;
}
p {
    /* myColor no está definido, tomará el valor blue */
    color: var(--myColor, blue);
    font-size:  var(--my-font-size, 2rem);
}

Trabajando con variables CSS en jаvascript


Como las variables CSS son en realidad propiedades CSS, se puede trabajar con ellas de igual forma que con cualquier otra propiedad: utilizamos getComputedStyle() para obtener todas las reglas de estilo calculadas para un determinado elemento, y luego getPropertyValue() para obtener el valor de una propiedad o variable CSS específica:
var documentStyles = window.getComputedStyle(document.documentElement);
var propertyValue = documentStyles.getPropertyValue("--myColor");
El ejemplo anterior se aplica al todo el documento, pero se puede hacer para cualquier elemento:
var elementStyles = window.getComputedStyle(document.getElementById('myelement'));
var propertyValue = elementStyles.getPropertyValue("--myColor");
Aunque no es obligatorio, es frecuente que se recomiende pasar el resultado por la función trim() para eliminar posibles espacios en blanco antes y después del valor, que son más frecuentes de lo que pueda parecer:
var elementStyles = window.getComputedStyle(document.getElementById('myelement'));
var propertyValue = elementStyles.getPropertyValue("--myColor");
propertyValue = String(propertyValue).trim();
Del mismo modo, se puede utilizar la función setProperty() para establecer el valor de una variable CSS:
var element = document.getElementById('myelement');
element.style.setProperty("--myColor", "blue");
Cuando se utiliza setProperty() para cambiar el valor de una variable CSS, todos los elementos afectados serán «repintados» en el navegador, lo que lleva la capacidad reactiva a CSS. Ejemplo:
<style>
    #parent {
        --myColor: blue;
    }
    .child {
        color: var(--myColor);
    }
</style>
<div id="parent">
    <div class="child">Some text</div>
</div>
<script>
    var element = document.getElementById('parent');
    /* El texto en el div .child cambiará a color amarillo */
    element.setProperty('--myColor',"yellow");
</script>
Y, por último, las variables CSS también se puede eliminar:
var element = document.getElementById('myelement');
element.style.removeProperty("--myColor");
Síguenos en
Google News Flipboard
  • 100
  • 1
  • 2
  • 3
  • 4
  • 5
Curso intensivo para principiantes en HTML5
El caso del colapso de márgenes en CSS
Tutoriales En Linea
Tutoriales En Linea
  • Website
  • Facebook
  • Twitter
  • LinkedIn
  • Pinterest
  • Instagram

Sobre mi: CEO de Tutoriales En Linea:
https://tutorialesenlinea.descargarjuegos.org
Fundador y CEO de Tutoriales En Linea...Leer mas...

Artículos Relacionados


El método focus() en javascript

El método focus() en javascript

Curso intensivo para principiantes en HTML5

Curso intensivo para principiantes en HTML5

El caso del colapso de márgenes en CSS

El caso del colapso de márgenes en CSS


Comentarios



Información
s que no esten registrados no pueden dejar comentarios, te invitamos a que te registre!

Destacados

Lista IPTV con canales para colombia

Mayo 23 44 283

Como instalar SS IPTV en una Smart Tv Samsung

Ene 22 10 398

Como podemos conseguir proxies

Jun 21 11 636

Historia de los sistemas operativos

Mayo 16 31 089

Lo mas leidos

Herramientas SEO para posicionamiento de nuestra web 2024

Por 17-06-24

Herramienta online de generador de datos estructurados

Por Tutoriales En Linea 17-06-24

Las 7 mejores páginas para descargar películas en .torrent en español

Por 26-09-24

Etiquetas

stylesheet




Sobre nosotros

Tutoriales En Linea

¡Bienvenidos a Tutoriales En Línea, el sitio web perfecto para encontrar todas las herramientas necesarias para mejorar tus habilidades de forma gratuita! En Tutoriales En Linea se encuentran tutoriales, cursos online y aprendizaje de calidad, muy útiles para desarrollar tus capacidades... Leer mas...

Tiene una pregunta? ar...

Enlaces

  • Sobre nosotros
  • Ultimos tutoriales
  • Publicar tutorial
  • Ver mas temas
  • Ultimos comentarios
  • ¿Preguntas Frecuentes?
  • Derechos de autor
  • Politica de cookies
  • Nuestro equipo
  • Normas

Herramientas online

  • Buscador de recetas
  • Prueba de diseño web
  • Codificar en binarios, hexadecimales...
  • Cual es mi IP
  • Test de velocidad
  • Editor HTML
  • Test de escritura
  • Test de nutricion
  • Descargar Videos
  • Generador de datos estructurados

Recursos

  • Analisis de tus problemas de SEO
  • Herramientas SEO
  • Generar palabras claves
  • Referencia de CSS3
  • Convertir HTML a XML
  • Acortador de URL
  • Selector de colores
  • Contador de palabras
  • Comprimir imagenes
  • Conversor a URI de datos
  • Suscribirse
Facebook Twitter Instagram Pinterest Linkedin Youtube
  • Anunciarse
  • Socios externos
  • Política de privacidad
  • Términos y Condiciones
  • Sobre nosotros
  • ar
© Tutoriales En Linea. Reservados todos los derechos, queda prohibida la reproducción parcial o total sin previa autorización.