javascript - 样式组件内的动态最小最大值

标签 javascript css-grid styled-components

我正在尝试使 minmax 函数内的 250px 数字在样式组件内动态化。

通常我可以使用这样的东西:

minmax(${props => props.minWidth}, 1fr)

但这会立即中断,甚至不会渲染,因为它的语法无效。

这是我现在的代码,但它不是动态的。非常感谢任何想法:)

const GridContainer = styled.div`
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  grid-auto-rows: auto;
  grid-gap: 20px;
  width: 100%;
`;

最佳答案

您需要使用模板文字。

下面是在样式组件中正确使用 props 的代码。

const GridContainer = styled.div`
  display: grid;
  grid-template-columns: ${(p) => `repeat(auto-fit, minmax(${p.minWidth}, 1fr))`};
  grid-auto-rows: auto;
  grid-gap: 20px;
  width: 100%;
`;

使用默认的最小宽度。

const GridContainer = styled.div`
  display: grid;
  grid-template-columns: ${(p) => `repeat(auto-fit, minmax(${p.minWidth || '250px'}, 1fr))`};
  grid-auto-rows: auto;
  grid-gap: 20px;
  width: 100%;
`;

关于javascript - 样式组件内的动态最小最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70338977/

相关文章:

javascript - 无法从数组中过滤对象

css - 为什么 minmax(0, 1fr) 对长元素有效而 1fr 却不行?

css - 嵌套网格区域未正确对齐

javascript - 当使用不同 Prop 渲染组件的多个实例时,关键帧动画不起作用?用于动画的宽度取决于 Prop 值

javascript - 如何在javascript中为下拉列表编写回发事件

Javascript - 根据 URL 显示测验问题

javascript - Bootstrap 表单助手没有选择完整的国家/地区名称

html - 在不使用模板区域的情况下放置网格项

javascript - 在带有渲染的组件上使用动画

javascript - 对象表示法中的条件样式组件