Tutorial WordPress: Hacer que los botones ocupen 100% en móviles con media queries

·

·

Introducción

En este tutorial aprenderás, paso a paso y con todo lujo de detalles, cómo hacer que los botones de tu sitio WordPress ocupen el 100% del ancho en dispositivos móviles usando media queries. Verás por qué funciona, cómo elegir puntos de quiebre (breakpoints), ejemplos concretos para temas, Gutenberg, WooCommerce, Elementor y formularios, y cómo aplicar los cambios de forma segura (Administrador > Personalizar, child theme o enqueue).

Por qué usar media queries y no un cambio global

Decidir el breakpoint (punto de quiebre)

No existe un único valor correcto, pero estos son los más habituales:

Como regla práctica para WordPress suele bastar usar max-width: 767px o max-width: 768px si quieres incluir tablets verticales. A continuación usaremos 767px en los ejemplos, pero adáptalo si tu tema usa otros breakpoints.

Regla CSS general para convertir botones en 100% ancho

La idea general es forzar los elementos botón/anchor a ser elementos de bloque y tomar el 100% del ancho disponible. También es conveniente controlar el max-width y asegurar un tamaño táctil razonable.

@media (max-width: 767px) {
  / Selectores comunes para botones en WordPress /
  .button,
  .btn,
  button,
  input[type=button],
  input[type=submit],
  a.button,
  .wp-block-button__link {
    display: block !important
    width: 100% !important
    max-width: 100% !important
    box-sizing: border-box
    text-align: center
    padding-left: 1rem
    padding-right: 1rem
    margin-left: 0 !important
    margin-right: 0 !important
  }

  / Si tu tema aplica inline-block o float a los contenedores /
  .wp-block-button {
    width: 100%
  }
}

Explicación de las propiedades usadas

Ejemplos específicos para casos comunes

1) Gutenberg (Bloques de botón)

Los botones de Gutenberg suelen usar .wp-block-button y .wp-block-button__link. Forzar el bloque padre y el enlace a 100% garantiza que el botón ocupe todo el ancho.

@media (max-width: 767px) {
  .wp-block-button,
  .wp-block-button .wp-block-button__link {
    display: block !important
    width: 100% !important
  }
}

2) WooCommerce (botón añadir al carrito)

Los selectores más comunes para los botones de producto son .single_add_to_cart_button o formularios de compra. Aquí un ejemplo que cubre los casos típicos:

@media (max-width: 767px) {
  .single_add_to_cart_button,
  .woocommerce #respond input#submit,
  .woocommerce a.button,
  .woocommerce button.button {
    display: block !important
    width: 100% !important
    max-width: 100% !important
  }
}

3) Formularios (Contact Form 7, Gravity Forms, etc.)

Los formularios usan input[type=submit] o clases propias. Es buena idea apuntar a ambos.

@media (max-width: 767px) {
  form input[type=submit],
  form button[type=submit],
  .wpcf7-form input[type=submit],
  .gform_wrapper .gform_footer input[type=button],
  .gform_wrapper .gform_footer input[type=submit] {
    display: block !important
    width: 100% !important
  }
}

4) Elementor y otros page builders

Elementor aplica clases propias (.elementor-button, .elementor-widget-button .elementor-button) en un contenedor. Ejemplo:

@media (max-width: 767px) {
  .elementor-widget-button .elementor-button,
  .elementor-button {
    display: block !important
    width: 100% !important
  }
}

Aplicar el CSS en WordPress (lugares recomendados)

  1. Personalizar > CSS adicional (Customizer): rápido y seguro se respeta con actualizaciones del tema.
  2. Child theme – style.css: si usas un child theme, añade el CSS allí para mantenerlo controlado por versión.
  3. Enqueue mediante functions.php: útil si quieres añadir CSS condicional o consolidar en archivos. Ejemplo de cómo añadir CSS inline o un archivo propio:
// En functions.php del child theme
function mi_tema_enqueue_responsive_css() {
  wp_enqueue_style(mi-child-style, get_stylesheet_uri()) // si ya tienes style.css cargado
  custom_css = @media (max-width: 767px) { .button, .btn, .wp-block-button__link { display:block!important width:100%!important } }
  wp_add_inline_style(mi-child-style, custom_css)
}
add_action(wp_enqueue_scripts, mi_tema_enqueue_responsive_css, 20)

Problemas comunes y cómo resolverlos

Consejos de usabilidad y accesibilidad

Pruebas finales

  1. Prueba en modo responsive del inspector del navegador (Chrome/Firefox) y en varios tamaños: 375×667, 360×800, 768×1024.
  2. Prueba en dispositivos reales cuando sea posible (Android, iPhone).
  3. Verifica en páginas con caché o CDN (Cloudflare) y purga si es necesario.

Resumen práctico

Para conseguir que los botones ocupen 100% en móviles:

Ejemplo final consolidado (lista de selectores comunes)

@media (max-width: 767px) {
  / Selectores consolidados para la mayoría de casos /
  .button,
  .btn,
  button,
  input[type=button],
  input[type=submit],
  a.button,
  .wp-block-button__link,
  .elementor-widget-button .elementor-button,
  .single_add_to_cart_button,
  .wpcf7-form input[type=submit] {
    display: block !important
    width: 100% !important
    max-width: 100% !important
    box-sizing: border-box
    text-align: center
    padding-left: 1rem
    padding-right: 1rem
    margin-left: 0 !important
    margin-right: 0 !important
  }

  / Ajuste en contenedores de bloques si es necesario /
  .wp-block-button,
  .elementor-widget-button {
    width: 100%
  }
}

Con estas indicaciones y ejemplos podrás adaptar los estilos de tu tema y plugins para que los botones ofrezcan una mejor experiencia en dispositivos móviles sin romper el diseño en pantallas grandes.



Leave a Reply

Your email address will not be published. Required fields are marked *