ReactJS 内容没有填满整个页面,只占可用高度的 3/4

IT技术 javascript html css reactjs react-particles-js
2021-05-23 00:13:53

如您所见,即使高度属性为 100%,包含粒子和 Home 组件的 div 也仅使用了 3/4 的高度。我是不是把组件渲染错了,我应该怎么做才能让组件填满整个页面。

我认为问题出在 ParticlesComponent 上,因为它由于某种原因没有占用全部可用宽度。

应用程序.js:


  return (
     <div
        style={{
          position: "absolute",
          top: 0,
          left: 0,
          width: "100%",
          height: "100%"
        }}
      >
        <ParticlesComponent />
        <div
          style={{
            position: "absolute",
            top: 0,
            left: 0,
            width: "100%",
            height: "100%"
          }}
        >
          <Home/>
        </div>
      </div>
   
  );
}

export default App;

粒子组件:

export default () => (
    <div
      style={{
        position: "absolute",
        top: 0,
        left: 0,
        width: "100%",
        height: "100%",
        backgroundSize: "cover",
        backgroundPosition: "50% 50%"

      }}
    >
      <Particles
        // unrelated particle code that I decided to remove so that it doesn't clog up the page
      />
      
    </div>
  );

更新

我是如何解决的

我将此添加到 index.html 文件中:

#tsparticles{
  width: 100%;
  height: 100%;
  position: fixed;
  background-image: url('');
  background-size: cover;
  background-position: 50% 50%;
  background-repeat: no-repeat;
}

.body-particles{
  position: absolute;
  top: 0;
  left: 0;
  z-index: 100;
}
3个回答

Particles组件采用props

似乎效果很好的是指定className包装器和设置propswidth以及heightto 100%

CSS

.wrapper {
  height: 100%;
  width: 100%;
}

粒子

<Particles className="wrapper" />

这允许Particles组件采用任何包含元素的完整高度和宽度。

编辑 react-particles-js 全宽和高

只需在particle.js第15行添加这个

<Particles
        style={{
          minHeight: '100vh'
        }}

这应该做。

可选:你到处都有很多绝对位置,我会删除大部分并添加样式

position: fixed;
top: 0;
left: 0;
width: 100%;
height 100%

并确保安装所有依赖项,因为您将无法部署它。react-particles-js,semantic-ui-cs s)。玩得开心编码!

我是如何解决的

我将此添加到 index.html 文件中:

#tsparticles{
  width: 100%;
  height: 100%;
  position: fixed;
  background-image: url('');
  background-size: cover;
  background-position: 50% 50%;
  background-repeat: no-repeat;
}

.body-particles{
  position: absolute;
  top: 0;
  left: 0;
  z-index: 100;
}