使用样式组件在反应中根据屏幕分辨率的变化更改字体大小

Posted

技术标签:

【中文标题】使用样式组件在反应中根据屏幕分辨率的变化更改字体大小【英文标题】:Changing font size with respect to the change in screen resolution using styled-components in react 【发布时间】:2021-11-24 03:00:35 【问题描述】:

我正在使用样式化组件设计一个简单的反应应用程序。我正在努力让它更具响应性。

所以我创建了一个组件(广告),其属性值为宽度和高度。 根据宽度和高度值,字体大小应该会改变。

这就是我的广告组件的制作方法。

const AdContainer = styled.div`
  max-width: $props=>props.width;
  max-height:  $props=>props.height;
`;  

const Adp = styled.p`
      font-size:  $props=>props.width>"870px"?"24px":"16px";
    `;

function Ad(height,width) 
  return (

    <AdContainer height=height width=width>
         <AdTitle>Hello</AdTitle>
    </AdContainer>

    );

考虑这个父组件

function ProductPage() 
  return (
    <>
<Ad width="1920px" height="600px"/>
    </>
  );


export default ProductPage;

当我们通过width=1920pxheight=600px 时,Adtitle 的字体大小应该因此变为24px

const Adp = styled.p`
      font-size:  $props=>props.width>"870px"?"24px":"16px";
    `;

但它并没有改变并坚持16px

当屏幕尺寸发生变化时,我可以做些什么来重新渲染这个组件?

或者有没有其他方法可以解决这个问题,这样无论我在哪里使用这个广告组件,字体大小都应该根据给定的道具宽度和高度值而改变?

【问题讨论】:

【参考方案1】:

您正在尝试将字符串与字符串作为数字进行比较。不要这样做。这样做。

const Adp = styled.p`
  font-size:  $p => p.width > 870 ? "24px" : "16px";
`;
// And pass the props like this
<Adp width=1920 height=600/>
// AdContainer
const AdContainer = styled.div`
   max-width: $p => `$p.widthpx`;
   max-height:  $p => `$p.heightpx`;
`; 

【讨论】:

以上是关于使用样式组件在反应中根据屏幕分辨率的变化更改字体大小的主要内容,如果未能解决你的问题,请参考以下文章

前端设置页面字体尺寸跟随屏幕大小而进行变化

项目随笔之大小系列:px,sp,dp;java设置大小(LayoutParams)

将样式组件与反应和故事书一起使用时未加载字体

css样式自适应分辨率

不同分辨率和屏幕尺寸的TextView字体大小

更改列表中“切换”元素的样式,本地反应