首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用CSS在div标记内以水平和垂直方式设置反应组件。

使用CSS在div标记内以水平和垂直方式设置反应组件。
EN

Stack Overflow用户
提问于 2022-11-09 20:48:59
回答 3查看 35关注 0票数 -1

我试图在屏幕上显示一个以水平和垂直为中心的React旋转组件,在搜索和读取不同的类似答案之后,例如这个post,我可以将它水平地对中,目前我的代码如下:

代码语言:javascript
复制
import ClipLoader from "react-spinners/BounceLoader";

function Spinner() {
  return (
    <div
      style={{
        display: "flex",
        alignItems: "center",
        justifyContent: "center",
        flexDirection: "row",
      }}
    >
      <ClipLoader color="#52bfd9" size={100} />
    </div>
  );
}

export default Spinner;

我得到的结果是:

但是,我正在处理如何垂直地将其居中,从解决方案中得到的最接近的代码是:

代码语言:javascript
复制
<div style={{ verticalAlign: 'middle', position:'absolute', top: '50%', left: '50%', marginTop: '-100px', marginLeft: '-250px' }}>

但它不是垂直和水平的居中,请看下一张图片:

我的问题是:您有什么建议,如何在垂直和水平中心的div标签和组件?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-11-09 20:56:28

有几个选项可以将div的内容作为中心。在第一个示例中,您将div设置为flex并设置所有对齐属性,但是您缺少一个高度。默认情况下,div将是height: auto;。因此,它是垂直对齐内容,但div是项目的高度。将此css添加到包装div中应该会修复它:

代码语言:javascript
复制
height: 100vh;

您也可以很容易地使用网格完成这一任务:

代码语言:javascript
复制
div {
    display: grid;
    height: 100vh;
    margin: 0;
    place-items: center;
}

这两件事都是一样的。你只需要增加一个高度,你就应该做得很好。

票数 2
EN

Stack Overflow用户

发布于 2022-11-09 21:04:42

有人比我早,但你的第一条路没问题。您只需为您的柔性容器指定高度即可。

演示/示例

https://codesandbox.io/s/centered-spinner-95874e

票数 2
EN

Stack Overflow用户

发布于 2022-11-09 20:57:37

代码语言:javascript
复制
<div
  className="spinner"
>
  <ClipLoader color="#52bfd9" size={100} />
</div>

在css文件中这样做:

代码语言:javascript
复制
.spinner{
 height: 100vh;
display: flex;
justify-content: center;
align-items: center;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74381218

复制
相关文章

相似问题

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