Il existe un moyen d'ajouter des styles en ligne avec le! Important override?
style={
height: 20+'!important'
};
<div style={style}></div>
Cela ne fonctionne pas comme je l'aurais espéré.
20+'!important'
est '20!important'
.
Lorsque vous donnez simplement un nombre, réagir ajoute "px" pour vous; mais vous utilisez une chaîne, vous devez donc spécifier l'unité. Je suis également sûr qu'il doit y avoir un espace entre "! Important" et tout ce qui se trouve à gauche.
style={
height: 20 + 'px !important' // 20px !important
};
Apparemment React ne supporte pas cela. Mais j'ai eu ce hack comme j'ai fait mes recherches
<div ref={(node) => {
if (node) {
node.style.setProperty("float", "right", "important");
}
}}>
</div>
Bonne chance:)
C'est la seule façon de le faire fonctionner avec React 16.
const id="unique_id";
<React.Fragment>
<style>
{`
#${id} {
background-color: transparent !important;
}
`}
</style>
<Frame id={id} />
</React.Fragment>
Oui, la façon dont j'ai trouvé cela était celle déjà mentionnée ci-dessus:
const styles = (theme: any) => ({
panelSize: {
height: 480,
width: 360,
},
progress: {
height: '120px !important',
margin: theme.spacing.unit * 2,
width: '120px !important'
}
});
J'essaie les suggestions ci-dessus pour la largeur, mais je n'ai pas pu le faire fonctionner.
C'est ce qui fonctionne pour moi, j'ai créé un fichier style.css et ajouté dans mon cas, width: 100%! Important pour une classe, puis il suffit d'importer ce fichier dans mon composant, d'appeler cette classe et ça marche.
Je recommande d'utiliser composants stylisés , si vous avez une bonne raison d'utiliser !important
, car les accessoires de style ne prennent pas en charge !important
et probablement ne le sera pas à l'avenir.
Voici un exemple où nous remplaçons padding
sur grid columns
. Vous pouvez en fait laisser de côté le !important
comme " augmenter la spécificité " est suffisant.
const StyledColumn = styled.div(({size}) => ({className: `${size} wide column`})`
&&&&& {
padding-top: 0.3rem !important;
padding-bottom: 0.3rem !important;
}
`
<StyledColumn size="three"></StyledColumn>
&&&&&& <- augmente la spécificité.
Il existe un autre moyen plus propre mentionné dans documentation de l'interface utilisateur matérielle qui peut être utilisé avec react pour remplacer le comportement par défaut
1- Déclarez une variable constante pour le style
const widthStyle = {
width:10
}
2- Utilisez-le avec JSX pour le style en ligne
<div style={widthStyle}></div>
Une bonne astuce à utiliser qui est plus propre et plus cohérente pour les autres propriétés CSS:
ref={(el) => el.style.setProperty(<property>, <value>, "important")}
J'espère que cela t'aides!