CSS 100%高度在React应用中不起作用

tom*_*456 3 css reactjs

我正在尝试在我的React应用程序中使用Flexbox创建一个简单的两列网页,该网页占据整个宽度和高度。

我可以让它单独使用HTML和CSS,但不能在React应用程序中使用。

到目前为止,我有:

:root {
  overflow-x: hidden;
  height: 100%;
}

body {
  min-height: 100%
}

.flexbox {
  height: 100%;
  display: flex;
}

.left {
  flex: 0 0 200px;
  height: 100%
}

.right {
  flex: 1
}
Run Code Online (Sandbox Code Playgroud)

和:

<div class="flexbox">
  <div class="left">
    Left
  </div>
  <div class="right">
    Right
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我意识到我需要<div id="root"></div>在我的帐户中添加额外的标签,index.html因此我还在CSS中添加了以下内容:

#root {
  height: 100%;
}
Run Code Online (Sandbox Code Playgroud)

而我的render功能:

render() {
  return (
    <div className="flexbox">
      <div className="left">Left</div>
      <div className="right">Right</div>
    </div>
  )
}
Run Code Online (Sandbox Code Playgroud)

但这不起作用。列存在但不是全高。为什么不?

Arn*_*sen 20

如果您使用create-react-appclass=App,则会root向 DOM添加一个带有 id的元素和一个带有 id 的元素。他们也应该得到height: 100%

html, body, #root, .App {
  height: 100%;
}
Run Code Online (Sandbox Code Playgroud)

  • 惊人的。这个问题花了3天时间!!这为我做到了! (2认同)

zdo*_*lny 5

在CSS中使用视口高度单位:

#root {
    min-height: 100vh;
}
Run Code Online (Sandbox Code Playgroud)


小智 5

你忘了这<html>也是一个标签。而且,它是所有父母的父母!这就是为什么您也应该将其高度设置为 100%。

html, body { height: 100%; }


小智 4

主体会向其父级 (HTML) 查找如何缩放动态属性,因此 HTML 元素也需要设置其高度。

然而,正文的内容可能需要动态更改。将 min-height 设置为 100% 将实现此目标。

html {
  height: 100%;
}
body {
  height: 100%;
}
Run Code Online (Sandbox Code Playgroud)