• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

149
Views
¿Puede cambiar la clase de un elemento dependiendo de si el navegador se amplía o se reduce?

Quiero establecer una clase para un elemento durante el cambio de ancho, dependiendo de si el ancho del navegador se amplía o se reduce. Si se estrecha, el elemento recibe la primera clase; si se ensancha, el segundo.

<--- clase=“estrecho” | ---> clase=“ampliar”

Si se puede hacer, mi primera opción es CSS, si no, JavaScript (o una combinación de los dos). No tengo idea de cómo abordar el problema, solo sé que las consultas de medios CSS no me dan lo que quiero.

about 3 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Puede utilizar @media. Compruebe el tamaño de la pantalla, establezca 2 reglas de @media. En cada regla, puede cambiar las propiedades CSS de la misma clase.

about 3 years ago · Juan Pablo Isaza Report

0

Puede usar el método matchMedia de JavaScript de la siguiente manera:

 function changeClass(x) { if (x.matches) { // If media query matches document.getElementById("myDiv").classList.add("narrow"); document.getElementById("myDiv").classList.remove("widen"); } else { document.getElementById("myDiv").classList.remove("narrow"); document.getElementById("myDiv").classList.add("widen"); } } var x = window.matchMedia("(max-width: 900px) and (min-width: 400px)") changeClass(x) // Call listener function at run time x.addEventListener("change", () => { changeClass(x); });
 .narrow { color: red; } .widen { color: rgb(45, 230, 45); }
 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <link rel="stylesheet" href="style.css"> </head> <body> <div id="myDiv"> this is the div </div> <script src="myCode.js"></script> </body> </html>

Si el ancho del navegador es mayor a 700px , cambia la clase a .widen y si es menor a 700px , cambia la clase a .narrow .

about 3 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error