es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La sombra de la caja de Tailwindcss no se muestra.

Estoy tratando de usar Tailwindcss en un proyecto de React donde estoy replicando el menú móvil del sitio web de Star Wars. Sin embargo, la sombra de la caja que estoy agregando a los segmentos del icono de hamburguesa no aparece cuando se abre el cajón de navegación.

Enlace al sandbox: https://play.tailwindcss.com/upmiAWTcso

index.js:

const toggleDrawer = (event) => {
  document.querySelector("#drawer").classList.toggle("left-[-100%]");
  document.querySelector("#drawer").classList.toggle("left-0");
  document.querySelector("#bar-1").classList.toggle("hidden");
  document.querySelector("#bar-2").classList.toggle("active-2");
  document.querySelector("#bar-3").classList.toggle("active-3");
};

<div onclick="{toggleDrawer}" classname="h-full flex flex-col justify-center items-center space-y-[8px]">
  <span id="bar-1" classname="block h-[2px] w-[30px] border-zinc-500 border-l-[4px] border-r-[20px] rounded-full transition-all duration-300"></span>
  <span id="bar-2" classname="block h-[2px] w-[30px] border-zinc-500 shadow-md border-l-[20px] border-r-[4px] rounded-full origin-bottom-right transition-all duration-300"></span>
  <span id="bar-3" classname="block h-[2px] w-[30px] border-zinc-500 shadow-md border-l-[4px] border-r-[20px] rounded-full origin-bottom-left transition-all duration-300"></span>
</div>;

global.css:

@layer components {
  .active-2 {
    @apply
      rotate-45
      -translate-x-2
      translate-y-[530%]
      !w-[34px]
      !border-l-[25px]
      !border-r-[5px]
      !border-white
      shadow-[#d50032];
  }
  .active-3 {
    @apply
      -rotate-45
      translate-x-1
      !w-[34px]
      !border-l-[5px]
      !border-r-[25px]
      !border-white
      shadow-[#106ae0] !important;
  }
}
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El problema es que la sombra de caja que se agrega a los segmentos del ícono de hamburguesa no se muestra cuando se abre el cajón de navegación en el proyecto de React donde se está utilizando Tailwindcss para replicar el menú móvil del sitio web de Star Wars.

    Al analizar el código proporcionado, parece que la sombra de caja se está aplicando en el archivo global.css, específicamente en las clases .active-2 y .active-3. Es posible que la sombra de caja se esté anulando o no se esté aplicando correctamente debido a la forma en que se utilizan las propiedades border en conjunto con las propiedades shadow.

    Para solucionar el problema, una posible solución es separar las propiedades border de las propiedades shadow y aplicarlas a elementos separados, con el border aplicado a los segmentos del ícono de hamburguesa en sí y la shadow aplicada a un elemento separado detrás de los segmentos.

    Otra posible solución es utilizar la utilidad ring de Tailwindcss en lugar de la propiedad shadow, ya que ring se puede usar para agregar contornos con esquinas redondeadas y puede funcionar bien en conjunto con las propiedades border.

    También vale la pena mencionar que manipular el DOM utilizando querySelector directamente en React generalmente no se recomienda, ya que puede dar lugar a resultados inesperados y puede volver el código menos mantenible. En su lugar, se recomienda utilizar las capacidades de gestión de estado y manejo de eventos incorporadas de React para controlar el comportamiento del cajón de navegación y los segmentos del ícono de hamburguesa.

Comments are closed.