我正在试图弄清楚如何判断我当前的屏幕尺寸,并在此基础上设置蚂蚁设计的特定宽度/高度.对于antd的最新版本5+,我使用的是设计令牌,而不是更少的css.

更具体地说,我正在寻找一种方法来做网格组件正在做的事情,我只想传递应该zoom 我的组件的xs, sm, md, lg, xl, xxl的信息.我在文档中找不到应该如何做到这一点.

推荐答案

您可以使用useBreakpoint钩子和自定义js/ts文件来处理您的样式.

/**
 * component.js/ts
 */
import Styles from "path/to/styles";

function Index() {
  const S = Styles();

  return <Input style={S.Input} />;
}

/**
 * styles.js/ts
 */
import { CSSProperties } from "react";
import { Grid } from "antd";

type StylesType = {
  Input: CSSProperties;
  OtherComponent: CSSProperties;
};

const { useBreakpoint } = Grid;

function Styles(): StylesType {
  const breakpoints = useBreakpoint();

  const Input: CSSProperties = {
    width: (() => {
      // you can now use any breakpoint and 
      // return different styles based
      if (breakpoints.xs) return "100%";
      if (breakpoints.sm) return "50%";
      if (breakpoints.md) return "25%";
      if (breakpoints.lg) return "10%";
      // default style
      return "100px";
    })()
  };

  const OtherComponent: CSSProperties = (() => {
    if (breakpoints.xs) return {
      width: '100%',
      color: 'red'
    }

    if(breakpoints.sm) return {
      width: '100px',
      color: 'blue'
    }
  })()

  return {
    Input,
    OtherComponent
  };
}

export default Styles;

Here是一个正常工作的代码和方框示例.

希望这能有所帮助

Css相关问答推荐

无法瞄准元素

如何将表格单元格的最后一个子级与单元格底部对齐?

MUI Reaction移除焦点上的轮廓边框

CSS媒体查询不显示所需的输出

如何将Ant设计日期 Select 器的图标设置在输入 Select 器之前而不是之后

如果一个类紧挨着另一个具有特定类的元素,请使用特殊的CSS,只使用不带JS的CSS

尽管 URL 路径正确,但背景图像未显示

包含 N 个 React 组件的砌体网格

如何使用来自单独模块的代码将自定义标头插入到使用 DT Shiny 呈现的表中?

如何使用 ReactJS 使用 CSS 设置 map 容器的样式

如何在 TypeScript 文件中导入 CSS 模块?

带有 gatsby-plugin-image 的 bootstrap 卡 ImgOverlay 未按预期调整大小

在 vuetify 中跨 `default.vue` 和 `index.vue` 维护网格系统

使用 CSS 在悬停时转换 SVG 路径的填充属性

如何强制 div 出现在下方而不是旁边?

导航栏中的 Bootstrap 3.0 按钮

单选按钮和标签显示在同一行

删除行内块元素中大文本上方和下方的空白

如何知道哪个 HTML 元素导致了垂直滚动条

:last-child 没有按预期工作?