Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

136
Vistas
Toggle css-pseudo element on wordpress

I am struggling with creating a mobile drop down menu on wordpress. I would like to make a 180° rotation of the arrow, "on click".

The problem is that I'm on wordpress, and I can't change my html code. So I added a pseudo-element :after in the css to get an arrow.

I would like to know how to select it ( in css or js ) to create and call this rotation.

Thanks a lot for your help, here is the snippet:

.menu-item-has-children .sub-menu .menu-item-object-page a {
  margin: 0 0 0 1rem;
}

.mobile-menu .sub-menu {
  display: inherit;
  transition: height 0.2s;
  opacity: 0;
  position:relative;
  height:0;
  padding-top:0;
  padding-bottom:0;
  visibility: hidden;
}
.mobile-menu li:hover .sub-menu  {
  opacity: 1;
}
.mobile-menu li:hover .sub-menu li {
  height:auto;
  padding: 1rem 0;
}
.mobile-menu .sub-menu li {
  height:0;
  padding-top:0;
  padding-bottom:0;
}
.menu-item-has-children:hover .sub-menu {
  /*display: block;*/
  visibility: visible;
  transform: translateY(0px);
}

.mobile-menu .sub-menu li:hover {
  background-color: transparent;
 }

.mobile-menu .menu-item-has-children > a::after {
  content: "\276F";
  display: inline-block;
  transform: rotate(90deg);
}

.mobile-menu .menu-item-has-children a {
  display: flex;
  justify-content: space-between;
}


.menu-item-has-children {
  position: relative;
  display: inline-block;
}

.sub-menu {
  display: none;
  position: absolute;
  width: 240px;
  z-index: 1;
  padding: 17px 20px 20px 20px;
  background: #FFFFFF;
  box-shadow: 0px 10px 10px rgb(115 132 167 / 40%);
  border-radius: 0px 0px 20px 20px;
  transition: all 0.4s ease;
  
}

.sub-menu li {
  text-decoration: none;
  display: block;
  width: 100%;
  text-align: left;
  padding: 15px 5px 15px;
  transition: all 0.4s ease;
}
<div class="mobile-menu">
<ul class="menu">
<li class="menu-item-has-children">
<a aria-haspopup="true" aria-expanded="false" rel="external">MENU A</a>
<ul class="sub-menu">
    <li class="menu-item menu-item-type-post_type menu-item-object-page ">1</li>
    <li class="menu-item menu-item-type-post_type menu-item-object-page ">2</li>
    <li class="menu-item menu-item-type-post_type menu-item-object-page ">3</li>
    <li class="menu-item menu-item-type-post_type menu-item-object-page ">4</li>
</ul>
</li>
</ul>
</div>

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

.menu-item-has-children .sub-menu .menu-item-object-page a {
  margin: 0 0 0 1rem;
}

.mobile-menu .sub-menu {
  display: inherit;
  transition: height 0.2s;
  opacity: 0;
  position:relative;
  height:0;
  padding-top:0;
  padding-bottom:0;
  visibility: hidden;
}
.mobile-menu li:hover .sub-menu  {
  opacity: 1;
}
.mobile-menu li:hover .sub-menu li {
  height:auto;
  padding: 1rem 0;
}
.mobile-menu .sub-menu li {
  height:0;
  padding-top:0;
  padding-bottom:0;
}
.menu-item-has-children:hover .sub-menu {
  /*display: block;*/
  visibility: visible;
  transform: translateY(0px);
}

.mobile-menu .sub-menu li:hover {
  background-color: transparent;
 }

.mobile-menu .menu-item-has-children > a::after {
  content: "\276F";
  display: inline-block;
  transform: rotate(90deg);
  /* Add transition timing to match dropdown */
  transition: all 0.4s ease;
}

/* New: Add hover and/or focus CSS */
.mobile-menu .menu-item-has-children:hover > a::after {
  transform: rotate(-90deg)
}
/* End New */

.mobile-menu .menu-item-has-children a {
  display: flex;
  justify-content: space-between;
}


.menu-item-has-children {
  position: relative;
  display: inline-block;
}

.sub-menu {
  display: none;
  position: absolute;
  width: 240px;
  z-index: 1;
  padding: 17px 20px 20px 20px;
  background: #FFFFFF;
  box-shadow: 0px 10px 10px rgb(115 132 167 / 40%);
  border-radius: 0px 0px 20px 20px;
  transition: all 0.4s ease;
  
}

.sub-menu li {
  text-decoration: none;
  display: block;
  width: 100%;
  text-align: left;
  padding: 15px 5px 15px;
  transition: all 0.4s ease;
}
<div class="mobile-menu">
<ul class="menu">
<li class="menu-item-has-children">
<a aria-haspopup="true" aria-expanded="false" rel="external">MENU A</a>
<ul class="sub-menu">
    <li class="menu-item menu-item-type-post_type menu-item-object-page ">1</li>
    <li class="menu-item menu-item-type-post_type menu-item-object-page ">2</li>
    <li class="menu-item menu-item-type-post_type menu-item-object-page ">3</li>
    <li class="menu-item menu-item-type-post_type menu-item-object-page ">4</li>
</ul>
</li>
</ul>
</div>

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda