Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

794
Views
Estilos CSS en línea en React: ¿cómo implementar consultas de medios?

Me gusta bastante el patrón CSS en línea ( video ) en React y estoy pensando en usarlo. Sin embargo, tengo una pregunta similar a esta .

¿Cómo se hace para implementar consultas de medios para una aplicación utilizando el patrón CSS en línea de React?

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

no puedes Hay ciertas características de CSS, como consultas @media , que deben definirse en un bloque de declaración en una hoja de estilo.

Si bien el CSS en línea es excelente para la mayoría de los atributos de estilo que se pueden aplicar en pares clave-valor, no es un reemplazo completo para las hojas de estilo dedicadas.

EDITAR:

Hay objetos experimentales disponibles en ciertos navegadores (Chrome 9+, IE 10+, Firefox 6+) que le permiten agregar detectores de eventos cuando cambian las consultas de medios sobre el documento, como MediaQueryList .

Hay un proyecto de React naciente llamado Radium que proporciona mezclas para aplicar estilos condicionales basados en las consultas de medios activas, utilizando MediaQueryList bajo el capó.

over 4 years ago · Santiago Trujillo Report

0

No puede hacer cosas como consultas de medios y pseudo elementos sin una hoja de estilo. Sin embargo, puede acceder a la información en la que están construidos en JavaScript. Por ejemplo, una implementación ingenua de un mixin de cambio de tamaño:

 var ResizeMixin = { componentDidMount: function(){ window.addEventListener('resize', this._resize_mixin_callback); }, _resize_mixin_callback: function(){ this.setState({ viewport: { width: document.documentElement.clientWidth, height: document.documentElement.clientHeight } }); }, componentWillUnmount: function(){ window.removeEventListener('resize', this._resize_mixin_callback); } };

Luego podría incluir eso en su componente y tener un renderizado que se vea así:

 render: function(){ var style; if (this.state.viewport.width > 900) { style = {width: '45%', margin: '2.5%'}; } else { style = {width: '100%', margin: '0'}; } ... }

No estoy seguro de que sea una buena idea, pero se puede hacer.


Por 'implementación ingenua' me refiero a que tiene problemas de rendimiento. addEventListener en realidad es bastante pesado, por lo que desea envolver eso en un emisor de eventos js simple. También puede tener solo una instancia del objeto de ventana gráfica para ahorrar algo de presión en el GC. Y desea acelerar el evento porque los navegadores lo emitirán muy rápido al arrastrar la ventana.

Al igual que con todas las buenas abstracciones, puede realizar estas optimizaciones cuando tenga tiempo libre y no necesita modificar los componentes que las utilizan.

over 4 years ago · Santiago Trujillo Report

0

React-Responsive le permitirá usar un cierto caso de uso de consultas de medios.

Le permite envolver elementos de elementos de reacción con especificaciones de medios. Los elementos envueltos se renderizarán solo si se cumple la especificación de medios. No es una solución de propósito general porque no le permite agregar propiedades css arbitrarias.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!