Ternary Operator for If/Else if/Else Statements
P粉320361201
P粉320361201 2024-03-28 19:15:53
[CSS3讨论组]

我正在尝试在 React js 中做一些条件样式。反应非常新,所以可能有更好的方法来做到这一点,但在互联网上搜索无济于事。我正在尝试根据所述屏幕尺寸检查屏幕尺寸和样式。在这个用例中,我想根据屏幕尺寸将一些文本居中。有人可以告诉我是否有更好的方法来做到这一点?目前这对我不起作用。

编辑:在那里放置了一些日志,它所做的正是当页面加载时“textAlign”根本不应用于元素,即使屏幕尺寸是 > 993px。一旦我将屏幕缩小到 < 993px 并且 > 578px 就会将“textAlign:center”应用于元素,然后一旦它缩小到 < 578px,它不会将其设置回无。它使其保持居中。

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",
    },
  }

然后我这样称呼这种风格

<Col lg={3} style={ styles.footerColOne }>

非常感谢任何帮助。

上次编辑:

所以我发现媒体查询确实是这里的首选方式,尽管我犯了一个白痴错误并且当该属性不存在该值时将 textAlign 设置为 none ,但我上面的三元条件有效。在这种情况下,应将其设置为 initial

P粉320361201
P粉320361201

全部回复(2)
P粉785905797
const getDevice = (deviceSize) => 
    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粉831310404

media query 非常适合这里。

@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. /*;
  }
}

既然如此,

max-width 如果屏幕尺寸低于此 max-width,则将应用此 media 查询 中的所有样式。

如果屏幕尺寸大于min-width,则将应用此media查询中的所有样式。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号