Maison > Questions et réponses > le corps du texte
J'essaie de faire du style conditionnel dans React js. Je suis très nouveau sur React, il existe donc peut-être une meilleure façon de procéder, mais la recherche sur Internet n'a servi à rien. J'essaie de vérifier la taille et le style de l'écran en fonction de ladite taille d'écran. Dans ce cas d'utilisation, je souhaite centrer du texte en fonction de la taille de l'écran. Quelqu'un peut-il me dire s'il existe une meilleure façon de procéder ? Actuellement, cela ne fonctionne pas pour moi.
EDIT : y mettre quelques journaux et cela fait que lorsque la page se charge, "textAlign" n'est pas du tout appliqué à l'élément, même si la taille de l'écran est > Une fois que j'ai réduit l'écran à < 993px et > 578px, il applique "textAlign:center" à l'élément, puis une fois qu'il est réduit à < Cela le maintient centré.
const styles = { footerColOne:{ textAlign: deviceSize > 993 ? "none" : (deviceSize < 993 && deviceSize > 578) ? "center" : "none", paddingLeft: deviceSize < 993 ? "26px" : "80px", paddingTop: deviceSize < 993 ? "28px" : "63px", }, footerColTwo:{ textAlign: deviceSize > 993 ? "none" : (deviceSize < 993 && deviceSize > 578) ? "center" : "none", paddingLeft: deviceSize < 993 ? "26px" : deviceSize < 578 ? "51px" : "50px", paddingTop: deviceSize < 993 ? "40px" : "86px", }, }
Ensuite, j'appelle ce style
<Col lg={3} style={ styles.footerColOne }>
Toute aide est grandement appréciée.
Dernière édition :
J'ai donc trouvé que les requêtes média sont effectivement la méthode privilégiée ici, même si j'ai commis une erreur idiote et ajouté textAlign
设置为 none
,但我上面的三元条件有效。在这种情况下,应将其设置为 initial
lorsque la valeur n'existait pas pour la propriété.
P粉7859057972024-03-29 15:37:34
const getDevice = (deviceSize) => deviceSize < 993 ? (deviceSize < 993 && deviceSize > 578) ? 'tablet' : 'mobile' : 'web' // if declare css -> return class // component use className instead of styles //const footerColOne = { 'web': () => { return { textAlign: 'none', paddingLeft: '26px', paddingTop: '28px' } }, 'tablet': () => { return { textAlign: 'center', paddingLeft: '80px', paddingTop: '63px' } }, 'mobile': () => { return { textAlign: 'none', paddingLeft: '80px', paddingTop: '63px' } } } const styles = { footerColOne: footerColOne[getDevice(deviceSize)]() } console.log(styles.footerColOne) //
P粉8313104042024-03-29 12:12:11
media query
Ajustement parfait ici.
@media screen and (min-width: 578px) and (max-width: 993px) { .someclass { text-align:center; } } @media screen and (max-width: 993px) { .someclass { text-align:center; padding-left:26px; padding-right:28px; } } @media screen and (min-width: 993px) { .someclass { text-align:left /* none as you wanted. /*; } }
Dans ce cas,
Tous les styles enmax-width
如果屏幕尺寸低于此 max-width
,则将应用此 media 查询
.
Tous les styles en min-width
,则将应用此media查询
si la taille de l'écran est supérieure à