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

92
Views
Anulación del estilo del indicador de la pestaña MUI

Actualmente estoy tratando de personalizar la pestaña MUI para que el indicador en lugar de una línea en la parte inferior sea un color de fondo. Después de investigar, descubrí que usar TabIndicatorProps y pasarle un estilo de display:none elimina el indicador por completo. backgroundColor:"color" cambia el color de la línea, pero no sé cómo cambiarlo de una línea a todo el fondo.

Algunas posibles soluciones que probé pero no funcionaron fueron darle a TabIndicatorProps una height:100% Esto crea el fondo pero enmascara el texto en la pestaña. Después de eso, darle una opacity: .8 me da el efecto que quiero, pero el texto es demasiado oscuro y no puedo cambiarlo porque la pestaña está activa.

Imagen de pestaña esperada Imagen de pestaña actual

 <Box sx={{ width: '100%', bgcolor: 'background.paper' }}> <Tabs TabIndicatorProps={{ style: { backgroundColor: '#D2603D', borderRadius: '5px', }, }} value={value} onChange={handleChange}> <Tab textColor='blue' onClick={handleClick} sx={{ backgroundColor: '#F4F5F9', borderRadius: '5px', }} label="Daily" /> < Tab sx={{ backgroundColor: '#F4F5F9', }} label="Weekly" /> <Tab sx={{ backgroundColor: '#F4F5F9', borderRadius: '5px' }} label="Monthly" /> </Tabs> </Box >
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

No creo que eso sea posible de una manera limpia. Se necesitan soluciones alternativas bastante sucias o una reimplementación sustancial de la funcionalidad.

Las etiquetas de las pestañas son elementos <button> , el indicador de la pestaña es un <span> que se encuentra sobre estos botones, pero desea que las etiquetas aparezcan sobre el indicador. Por lo tanto, debe reorganizar el apilamiento de los elementos HTML o agregar una segunda etiqueta sobre el indicador.

No es posible dejar que el indicador de la pestaña se deslice detrás del texto del botón, sino delante del fondo del botón.

Algunas soluciones subóptimas ("sucias")

  1. Puede reorganizar el apilamiento de los elementos HTML.

Esto se puede hacer usando z-index . Debe establecer el z-index de los botones y debe mantener el fondo del botón transparente.

Tenga en cuenta que es posible que deba tener cuidado si hay otros elementos que ya tienen un z-index o deben permanecer detrás de los botones, en cuyo caso también deberá cambiar el z-index de estos otros elementos.

 <Tab label="Daily" style={{ zIndex: 1 }} /> <Tab label="Weekly" style={{ zIndex: 1 }} /> <Tab label="Monthly" style={{ zIndex: 1 }} />
  1. Puede agregar la etiqueta actual como elemento secundario del indicador de pestaña y configurar el estilo para que coincida con la etiqueta original. También necesitaría pasar la etiqueta actual, y la etiqueta se deslizaría con el indicador, o el indicador estaría vacío mientras se desliza.
 const IndicatorLabel = ({ label }) => { return <span className={'indicator-label'}> { label } </span>; }; // ... <Tabs TabIndicatorProps={{ // ... children: <IndicatorLabel label={ currentLabel } /> }} > // ...
  1. Puede establecer el color de fondo del <button> dinámicamente y no usar el indicador en absoluto. Eso sí, perderías el efecto deslizante.

  2. Por supuesto, puede implementar su propio indicador de pestaña desde cero y no usar el indicador de pestaña MUI.

about 4 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 Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!