¿Cómo elimino estilos específicos del CSS del tema padre usando el CSS del tema hijo?

21 may 2014, 01:01:43
Vistas: 68.3K
Votos: 4

Hay algunos estilos en mi tema padre que simplemente eliminaría de la hoja de estilos si no estuviera usando un tema hijo. Obviamente, no quiero eliminarlos del CSS padre, pero ¿hay alguna manera de "eliminar" efectivamente los estilos usando mi tema hijo?

1
Comentarios

Para ampliar esta pregunta, además de los estilos específicos, sería bueno saber si hay una manera de eliminar las referencias a hojas de estilo externas. Por ejemplo, hay un tema que me gusta pero que incluye una hoja de estilo de fonts.google.com que preferiría evitar para mantener mi sitio libre de Google. :-\ Lo logré usando wp_dequeue_style y wp_deregister_script.

Synetech Synetech
21 sept 2019 16:51:00
Todas las respuestas a la pregunta 4
0

La única forma de "eliminar" estilos del tema padre es sobrescribirlos en el CSS de tu tema hijo.

Por ejemplo, si tienes la siguiente declaración en tu tema padre:

.someclass{
    width: 200px;
    float: left;
 }

Puedes sobrescribir el width y float declarando lo siguiente en tu tema hijo:

.someclass{
    width: auto;
    float: none;
}
21 may 2014 05:17:49
1

Sé que esto es antiguo pero he estado pensando en ello últimamente. Tengo el mismo problema: si me encuentro modificando extensivamente la hoja de estilos del tema padre, puede llegar al punto en que estoy cargando una enorme cantidad de estilos simplemente para sobrescribirlos en el tema hijo.

Cuando trabajo en este tipo de proyectos, normalmente es el caso de que estoy haciendo muchas más modificaciones al CSS que al PHP. Quiero usar un tema hijo para la estructura PHP y HTML, pero el CSS es efectivamente propio. Para ese tipo de proyecto, en lugar de encolar el CSS del padre, lo copio en la hoja de estilos del tema hijo y luego lo modifico, de modo que las únicas partes del CSS padre que conservo son aquellas que he elegido específicamente reutilizar.

No tienes que usar para nada el CSS del tema padre. Puedes escribir todo el CSS personalizado si lo prefieres, y usar solo las plantillas PHP de tu tema padre.

El PHP tiene muchas más probabilidades de tener problemas de seguridad que el CSS, que es solo un sistema de formato, así que puedes confiar en un conjunto de PHP/HTML probado y actualizado y darle formato tú mismo.

19 ene 2016 16:06:35
Comentarios

Este es realmente un punto muy relevante. Yo comencé con temas, luego con temas hijos, y me encontré frustrado por tener que sobrescribir los estilos existentes del tema padre... Así que hice lo que sugieres y abandoné el style.css del tema padre, primero copiando todo, luego solo lo que quería conservar. Pero luego empecé a querer cambiar también el HTML y PHP, y en su lugar usaba los temas padres para entender 'cómo' hacían las partes que me gustaban... ...y ahora tengo mi propio framework inicial y construyo todo personalizado. Es una forma realmente genial de aprender. Buena respuesta Victoria.

Tony Djukic Tony Djukic
24 abr 2020 18:48:53
0

Efectivamente, sí. A menos que esté malinterpretando tu pregunta, esto es solo especificidad básica de CSS. Supongo que quieres usar la mayoría de los estilos CSS del tema padre, pero solo algunas partes no son deseadas, ya que el CSS no se carga por defecto desde el tema padre.

Todas las reglas normales de anulación o aumento de especificidad aplican. El método más simple (pero más contundente) es simplemente crear reglas que usen !important para sobrescribir las reglas que no deseas. De lo contrario, deberías confiar en la cascada de reglas y la especificidad para apuntar correctamente a los elementos que deseas y establecer los estilos que prefieras.

No hay nada integrado en WordPress para filtrar, recortar, eliminar o quitar partes del CSS de un tema padre, si eso es lo que estás preguntando.

21 may 2014 02:01:19
0

No creo que exista una forma directa, solo soluciones alternativas.

Edición:

Explicación: Al crear un tema hijo, por definición estás cargando el CSS del tema padre. Por lo tanto, no veo una manera de excluir partes de ese CSS. La única forma efectiva sería sobrescribirlo. La forma más directa sería usar los selectores y reglas que deseas modificar y asignarles nuevos valores o valores predeterminados. Dado que el CSS del tema hijo tiene mayor prioridad en la "cascada" de estilos que el CSS del tema padre, no debería ser necesario usar declaraciones "!important" y similares.

21 may 2014 02:13:30