Saltar al contenido principal
Codigo Heroe
Lista de tareas
Estilos dinámicos de los elementos1/15
A la lista de tareas
  1. 1. La propiedad style
  2. 2. Ajustar el color del texto
  3. 3. Obtener el valor de un control deslizante
  4. 4. Cambiar el tamaño de la fuente
  5. 5. El manejador oninput
  6. 6. Ajustar el color de fondo
  7. 7. La propiedad type
  8. 8. Mostrar la contraseña con una casilla
  9. 9. La propiedad checked
  10. 10. Cambiar el ancho de la barra
  11. 11. Vincular el ancho con la longitud de la contraseña
  12. 12. Guardar la longitud de la contraseña en una variable
  13. 13. Operadores de comparación
  14. 14. La estructura else if
  15. 15. La rama else
Siguiente tarea
  • Matriz de skills
  • Cursos
  • Registro
  • Iniciar sesión

Loading…
En unos segundos, estará listo.

  • Teoría
  • Teoría

La propiedad style

¡Miau! Se me ocurrió un formato nuevo: artículos largos y ajustes flexibles. ¡Ayúdame a programarlo antes de que la competencia se entere!

En el portal de noticias de los primeros ejercicios y los capítulos anteriores ahora se publican artículos largos, además de noticias breves. Para que resulte cómodo leerlos, los usuarios deben poder cambiar el tamaño y el color del texto, así como el color del fondo.

Trabajaremos en la página de un artículo. En la parte superior están los ajustes: dos listas desplegables de colores y un control deslizante. Las listas controlan el color del texto y del fondo del artículo. El control deslizante ajusta el tamaño del texto. Cuando alguien elija un valor de una lista o mueva el control deslizante, el aspecto del artículo deberá cambiar.

Hasta ahora usábamos clases para cambiar el aspecto de un elemento. Pero aquí ese enfoque resulta poco práctico. Hay tantos colores en las listas y posiciones en el control deslizante que necesitaríamos decenas de clases para cubrir todas las opciones. Hay otra solución: cambiar directamente los estilos del elemento.

Podemos controlar los estilos de un elemento con la propiedad style. Después de ella escribimos un punto y el nombre de la propiedad CSS que queremos cambiar.

elemento.style.propiedadCSS

Para cambiar un estilo del elemento, asignamos un nuevo valor a esa propiedad. Por ejemplo:

let element = document.querySelector('p');

// Cambiamos el color del texto del párrafo a verde
element.style.color = 'green';

Los estilos establecidos con la propiedad style funcionan igual que si los escribiéramos en el atributostyle del elemento. Tienen mayor prioridad que las declaraciones normales del archivo de estilos.

Entonces, ¿cuándo usamos clases y cuándo la propiedad style? Usa style cuando resolver el problema con clases resulte poco práctico.

En el sitio de noticias cambiaremos los estilos de un artículo concreto: el elemento con la clase longread. Lo buscaremos y lo guardaremos en una variable. Para probar cómo funciona style, cambiaremos el color del texto del artículo a púrpura.

Todos los archivos
    <!DOCTYPE html> <html lang="es"> <head> <meta charset="utf-8"> <link rel="stylesheet" href="setting.css"> <link rel="stylesheet" href="style.css"> <title>FlashNews!</title> </head> <body class="page page-longread light-theme"> <header class="page-header"> <div class="container"> <a class="header-logo" href="index.html"> <img src="img/main-logo.svg" width="67" height="29" alt="Logotipo del portal FlashNews!"> </a> <a href="subscription.html" class="subscription-link">Suscripción</a> <button class="theme-button" type="button">Cambiar tema</button> </div> </header> <main class="index-main"> <div class="controls"> <div class="container"> <div class="color-filters"> <label>Color del texto: <select class="filter color-setting" name="font-color"> <option value="inherit" selected>Predeterminado</option> <option value="black">Negro</option> <option value="white">Blanco</option> <option value="ghostwhite">Gris claro</option> <option value="pink">Rosa</option> <option value="darkred">Rojo oscuro</option> <option value="darkorange">Naranja</option> <option value="saddlebrown">Marrón</option> <option value="gold">Dorado</option> <option value="greenyellow">Verde lima</option> <option value="forestgreen">Verde</option> <option value="aquamarine">Aguamarina</option> <option value="lightskyblue">Azul cielo</option> <option value="lightsteelblue">Azul grisáceo</option> <option value="darkblue">Azul oscuro</option> <option value="indigo">Índigo</option> <option value="mediumpurple">Violeta</option> <option value="purple">Púrpura</option> </select> </label> <label>Color del fondo: <select class="filter background-setting" name="background-color"> <option value="inherit" selected>Predeterminado</option> <option value="black">Negro</option> <option value="white">Blanco</option> <option value="ghostwhite">Gris claro</option> <option value="pink">Rosa</option> <option value="darkred">Rojo oscuro</option> <option value="darkorange">Naranja</option> <option value="saddlebrown">Marrón</option> <option value="gold">Dorado</option> <option value="greenyellow">Verde lima</option> <option value="forestgreen">Verde</option> <option value="aquamarine">Aguamarina</option> <option value="lightskyblue">Azul cielo</option> <option value="lightsteelblue">Azul grisáceo</option> <option value="darkblue">Azul oscuro</option> <option value="indigo">Índigo</option> <option value="mediumpurple">Violeta</option> <option value="purple">Púrpura</option> </select> </label> </div> <label>Tamaño del texto (<output class="pixels">14</output>px) <input class="size-setting" type="range" min="8" max="48" step="1" value="14"> </label> </div> </div> <article class="longread"> <div class="container"> <h1>Para qué sirven los algoritmos</h1> <p>La palabra algoritmo asusta a muchas personas: parece algo complicado, pero en realidad es un conjunto completo de instrucciones. También usas algoritmos en la vida diaria, por ejemplo, cuando sigues una receta, utilizas un navegador para ir del punto A al punto B o resuelves una ecuación cuadrática.</p> <p>Cuando quienes programan hablan de algoritmos, suelen referirse a soluciones conocidas para problemas habituales. Muchos algoritmos se inventaron antes que las computadoras: por ejemplo, el algoritmo de ordenamiento por dígitos se patentó en Estados Unidos en el siglo XIX para procesar los datos de un censo de población.</p> <p>Un mismo problema puede resolverse con distintos algoritmos. Imagina que necesitas encontrar un elemento en una lista. Supongamos que es una lista de productos de una tienda en línea y alguien escribe en el filtro el nombre de un producto que empieza con «E». ¿Cómo lo encuentras?</p> <p>Si la lista está ordenada alfabéticamente, puedes usar la búsqueda binaria: miras en la mitad de la lista y encuentras, por ejemplo, un producto cuyo nombre empieza con «K». Como la lista está ordenada y «E» va antes que «K», sabes que el producto que buscas está en la mitad izquierda. Tomas esa mitad y repites el procedimiento.</p> <p>Si la lista no está ordenada, conviene una búsqueda secuencial: recorres los elementos desde el principio hasta encontrar el que te interesa. En el peor caso tendrás que revisarlos todos, pero podrás estimar de antemano cuánto tiempo tomará la búsqueda.</p> <p>Elige el algoritmo según el problema. Identifica con qué datos trabajas y parte de ahí.</p> </div> </article> </main> <footer class="page-footer"> <div class="container"> <p>© FlashNews!</p> <a class="footer-logo"> <img src="img/white-logo.svg" alt="Logotipo del portal FlashNews!"> </a> </div> </footer> <script src="themes.js"></script> <script src="read-mode.js"></script> </body> </html>
    /* Estilos del artículo largo */ .controls { padding: 16px 0 6px; overflow-x: hidden; } .controls label { font-size: 14px; line-height: 24px; margin-bottom: 14px; } .color-filters { display: flex; margin-right: -20px; } .color-filters label { display: flex; flex-direction: column; flex-grow: 1; margin-right: 20px; } .color-filters .filter { margin-top: 4px; } .controls .filter { margin-left: 0; } .longread { min-height: calc(100vh - 237px); padding-bottom: 1em; font-size: 14px; } .longread h1 { margin: 1em 0 0.6em; line-height: 1.2; } .longread p { margin: 0 0 0.8em; line-height: 1.6; } /* Control de rango compatible sin scripts */ .size-setting { -webkit-appearance: none; -moz-appearance: none; appearance: none; display: block; width: 100%; height: 10px; margin-top: 8px; padding: 2px 0; border-radius: 5px; outline-offset: 0; } .size-setting::-webkit-slider-thumb { box-sizing: border-box; -webkit-appearance: none; width: 20px; height: 20px; border-radius: 50%; } .size-setting::-moz-range-thumb { box-sizing: border-box; -moz-appearance: none; width: 20px; height: 20px; border-radius: 50%; } .size-setting::-ms-thumb { box-sizing: border-box; width: 20px; height: 20px; border-radius: 50%; } /* Temas de color */ .page-longread.light-theme { background-color: #ffffff; color: #333333; } .light-theme .controls { background-color: #eae9f2; } .light-theme .size-setting { background-color: #ffffff; box-shadow: inset 0 0 0 1px #b6aaff; outline-color: #b6aaff; } .light-theme .size-setting::-webkit-slider-thumb { background-color: #ffffff; border: 5px solid #6653d9; } .light-theme .size-setting::-moz-range-thumb { background-color: #ffffff; border: 5px solid #6653d9; } .light-theme .size-setting::-ms-thumb { background-color: #ffffff; border: 5px solid #6653d9; } .light-theme .size-setting::-webkit-slider-thumb:active { background-color: #6653d9; } .light-theme .size-setting::-moz-range-thumb:active { background-color: #6653d9; } .light-theme .size-setting::-ms-thumb:active { background-color: #6653d9; } .page-longread.dark-theme { background-color: #0a0910; color: #f2f2f2; } .dark-theme .controls { background-color: #17161a; } .dark-theme .size-setting { background-color: #0a0910; box-shadow: inset 0 0 0 1px #473c8d; outline-color: #6653d9; } .dark-theme .size-setting::-webkit-slider-thumb { background-color: #0a0910; border: 5px solid #9484f2; } .dark-theme .size-setting::-moz-range-thumb { background-color: #0a0910; border: 5px solid #9484f2; } .dark-theme .size-setting::-ms-thumb { background-color: #0a0910; border: 5px solid #9484f2; } .dark-theme .size-setting::-webkit-slider-thumb:active { background-color: #9484f2; } .dark-theme .size-setting::-moz-range-thumb:active { background-color: #9484f2; } .dark-theme .size-setting::-ms-thumb:active { background-color: #9484f2; }
    let page = document.querySelector('.page'); let themeButton = document.querySelector('.theme-button'); themeButton.onclick = function () { page.classList.toggle('light-theme'); page.classList.toggle('dark-theme'); };

    El código ha cambiado, haz clic en "Actualizar" o activa la ejecución automática.

    Ha ido a otra página

    Haga clic dentro del mininavegador para poner el foco en esta ventana.

    100%
    Consola
    ObjetivosRealizado
    0
      1. Declara la variable longread y guarda en ella el elemento con la clase longread.
      2. En la siguiente línea, cambia el color del texto de longread a púrpura: longread.style.color = 'purple';.
        Observa que el texto del artículo cambió a púrpura.
      Codigo Heroe

      © 2023-2026, codigoheroe.com