Comment supprimer des styles spécifiques du css du thème parent à l'aide du thème enfant css?
-
-
Pour étendre cette question,en plus des styles spécifiques,il seraitbon de savoir s'ilexiste unmoyen de supprimer les références defeuille de styleexternes.Parexemple,il y a unthème quej'aimemaisilest lié dans unefeuille de style defonts.google.com queje préférerais éviterpourgardermon site Googlegratuit.: - \ Je l'ai accomplien utilisant [`wp_dequeue_style`et` wp_deregister_script`] (https://wordpress.stackexchange.com/questions/65523/how-do-i-dequeue-a-parent-themes-css-file).To extend this question, in addition to specific styles, it would be nice to know if there's a way to remove external stylesheet references. For example, there's a theme that I like but it links in a stylesheet from fonts.google.com which I would prefer to avoid to keep my site Google free. :-\ I accomplished it using [`wp_dequeue_style` and `wp_deregister_script`](https://wordpress.stackexchange.com/questions/65523/how-do-i-dequeue-a-parent-themes-css-file).
- 0
- 2019-09-21
- Synetech
-
4 réponses
- votes
-
- 2014-05-21
La seulefaçon de "supprimer" les styles duthèmeparentest de les remplacer dans le CSS de votrethèmeenfant.
Parexemple,si vous avez la déclaration suivante dans votrethèmeparent:
.someclass{ width: 200px; float: left; }
Vouspouvez remplacer la largeuret leflottanten déclarant ce qui suit dans votrethèmeenfant:
.someclass{ width: auto; float: none; }
The only way to "remove" styles from the parent theme is to override them in your child theme's css.
For example if you have the following declaration in your parent theme:
.someclass{ width: 200px; float: left; }
You can override the width and float by declaring the following in your child theme:
.someclass{ width: auto; float: none; }
-
- 2016-01-19
Je sais que c'est vieuxmaisj'y ai réfléchi ces dernierstemps. J'ai lemêmeproblème,sije metrouveen train demodifiertrès largement lafeuille de styleparent,celapeut arriver aupoint oùje charge unnombre énorme de styles,simplementpour les remplacer dans lethèmeenfant.
Quandje travaille sur cegenre deprojet,c'estgénéralement le cas queje modifiebeaucoupplus le CSS que lephp. Je veux utiliser unthèmeenfantpour la structurephpet htmlmais le cssesteffectivement lemien. Pour cetype deprojet,au lieu demettreen file d'attente le cssparent,je le copie dans lafeuille de style duthèmeenfant,puisje lemodifie,de sorte que les seulesparties du cssparent queje conserve soient celles quej'ai spécifiquement choisi de réutiliser.
Vousn'avezpas dutoutbesoin d'utiliser le css d'unthèmeparent. Vouspouvezpersonnalisertout le css,si vous le souhaitez,et n'utiliser que lesmodèlesphp de votreparent.
Lephpestbeaucoupplus susceptible d'avoir desproblèmes de sécurité que le css,quin'est qu'un système deformatage,vouspouvez donc vousfier à unensembletestéet mis àjour dephp/htmlet simplement leformater vous-même.
I know this is old but I've been thinking about it lately. I have the same issue, if I find myself very extensively modifying the parent stylesheet, it can get to the point where I am loading an enormous number of styles, simply to override them in the child theme.
When I am dealing with this kind of project, it is usually the case that I'm doing much more modification to the CSS than to the php. I want to use a child theme for the php structure and html but the css is effectively my own. For that kind of project, instead of enqueuing the parent css, I copy it into the child theme stylesheet and then modify it, so that the only parts of the parent css that I retain are the ones I've specifically chosen to reuse.
You don't have to use a parent theme's css at all. You can custom write all the css, if you like, and only use the php templates from your parent.
The php is much more likely to have security issues than the css, which is just a formatting system, so you can rely on a tested and updated set of php /html and just format it yourself.
-
C'esten fait unpoint vraiment saillant.J'ai commencé avec desthèmes,puis desthèmesenfants,puisje me suis retrouvéfrustré de devoir remplacer les styles dethèmeparentexistants ... alorsj'aifait ce que vous suggérezet j'ai abandonné le style.cssparent,d'aborden copianttout,puisjuste ce quejevoulaitgarder.Maisensuite,j'ai commencé à vouloir changer HTMLet PHP aussiet à laplacej'utilisais desthèmesparentspour comprendre «comment»ilsfaisaient lesparties quej'aimais ... ...et maintenantj'aimonpropre cadre de départet je construistout surmesure.C'est unetrèsbonnefaçon d'apprendre.Bonne réponse Victoria.This is actually a really salient point. I started with themes, then child themes, then found myself frustrated by having to override existing parent theme styles... so I then did what you suggest and abandoned the parent style.css, first by copying all of it, then just what I wanted to keep. But then I started wanting to change HTML and PHP as well and instead was using parent themes to understand 'how' they did the parts I liked... ...and now I have my own starting framework and build everything custom. It's a really great way to learn. Good Answer Victoria.
- 0
- 2020-04-24
- Tony Djukic
-
- 2014-05-20
Effectivement,oui.Sauf sije comprendsmal votre question,ilne s'agit que d'une spécificité CSS debase.Je suppose que vous souhaitez utiliser laplupart des CSS duthèmeparent,mais unepartie seulementn'estpas souhaitée,car le CSSn'estpas,par défaut,chargé àpartir duthèmeparent.
Toutes les règlesnormales depriorité ou d'augmentation de spécificité s'appliquent.Laméthode laplus simple (mais laplusbrutale) consiste simplement à créer des règles qui utilisent
!important
pour remplacer les règles que vousne voulezpas.Sinon,vous devriez simplement vousfier à la cascade de règleset à la spécificitépour cibler correctement les choses que vous voulezet définir les styles que vous voulez.Iln'y a rien deintégré dans wordpresspourfiltrer,couper,supprimer ou supprimer desmorceaux de CSS d'unthèmeparent,si c'est ce que vous demandez.
Effectively, yes. Unless I am misunderstanding your question, this is just basic CSS specificity. I assume you are wanting to use most of the CSS from the parent theme, but only some of it is not wanted, since the CSS isn't, by default, loaded from the parent theme.
All the normal rules of overriding or increasing specificity apply. The simplest (but most brute force) method is to just create rules that use
!important
to override the rules you don't want. Otherwise you should just rely on the rule cascade and specificity to properly target the things you want and set the styles you want.There is nothing built into wordpress to filter, cut, delete or remove bits of CSS from a parent theme, if that's what you are asking.
-
- 2014-05-20
Jene pensepas qu'il y ait unmoyen,seulement des solutions de contournement.
Modifier:
Explication: En créant unthèmeenfant,vous chargez,par définition,le CSS duthèmeparent.Par conséquent,je ne voispas comment vouspourriezexclure certainesparties de ce CSS.Le seulmoyenefficace serait depasser outre.Lemoyen leplus simple serait d'utiliser les sélecteurset les règles que vous souhaitez remplaceret de les définir sur des valeursnouvelles oupar défaut.Étant donné que le CSS duthèmeenfantestplusbas dans la "cascade" de styles que le CSSparent,ilne devraitpas êtrenécessaire d'avoir desinstructions "! Important"et autres.
I don't think there is a way, only workarounds.
Edit:
Explanation: By creating a child theme you are, by definition, loading the CSS of the parent theme. Therefore I don't see a way you could exclude some parts of that CSS. The only effective way would be to override it. The most straightforward way would be to use the selectors and rules you want to override, and set them to new or default values. Since child theme CSS is lower up in the "cascade" of styles than the parent CSS, there shouldn't be a need for "!important" statements and such.
Il y a certains styles dansmonthèmeparent queje supprimerais simplement de lafeuille de style sije n'utilisaispas dethèmeenfant.Évidemment,je ne veuxpas les supprimer du cssparent,mais y a-t-il unmoyen de "supprimer"efficacement les stylesen utilisantmonthèmeenfant?