首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用CSS Grid/JavaScript根据其他div宽度设置div宽度?

如何使用CSS Grid/JavaScript根据其他div宽度设置div宽度?
EN

Stack Overflow用户
提问于 2022-07-01 16:33:15
回答 1查看 39关注 0票数 1

我仍然是编程的初学者,而且我对CSS网格没有什么经验。

我需要呈现一个被分成两列的组件。左列具有minmax(570px, 720px)宽度。右列的宽度为minmax(380px, 100vw)

问题是左列从不更改其最小宽度570 of。

我需要左边的列是720 is,直到屏幕是1440 is。当屏幕小于1440 it时,左列开始逐渐减少,直到达到570 it。

你能告诉我怎么做吗?

这是我输入codesandbox.io的代码

我希望我能很好地解释我需要解决的问题。

代码语言:javascript
复制
import React from "react";

const App = () => {
  const ref1 = React.useRef(null);
  const ref2 = React.useRef(null);
  const [width1, setWidth1] = React.useState(0);
  const [width2, setWidth2] = React.useState(0);

  React.useEffect(() => {
    setWidth1(ref1.current.offsetWidth);

    const getwidth = () => {
      setWidth1(ref1.current.offsetWidth);
    };

    window.addEventListener("resize", getwidth);

    return () => window.removeEventListener("resize", getwidth);
  }, []);

  React.useEffect(() => {
    setWidth2(ref2.current.offsetWidth);

    const getwidth = () => {
      setWidth2(ref2.current.offsetWidth);
    };

    window.addEventListener("resize", getwidth);

    return () => window.removeEventListener("resize", getwidth);
  }, []);

  return (
    <div
      style={{
        width: "100vw",
        height: "100vh",
        maxWidth: "100%"
      }}
    >
      <div
        style={{
          height: "100vh"
        }}
      >
        <div
          style={{
            display: "flex",
            flexDirection: "row"
          }}
        >
          <div
            ref={ref1}
            style={{
              border: "1px solid blue",
              backgroundColor: "lightblue",
              display: "grid",
              gridTemplateColumns: "minmax(570px, 720px)",
              fontSize: "30px"
            }}
          >
            Left - {width1}
          </div>
          <div
            ref={ref2}
            style={{
              border: "1px solid red",
              backgroundColor: "lightcoral",
              display: "grid",
              gridTemplateColumns: "minmax(380px, 100vw)",
              fontSize: "30px"
            }}
          >
            Right - {width2}
          </div>
        </div>
      </div>
    </div>
  );
};

export default App;

非常感谢你的帮助

EN

回答 1

Stack Overflow用户

发布于 2022-07-01 17:46:42

尝试查看最大宽度,最小宽度的属性。

代码语言:javascript
复制
max-width:720px;
min-width:570px;

因为您希望div在精确的px id处移动,所以在JS中使用if-else条件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72832262

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档