我正在尝试使用React创建一个简单的网页。我想在屏幕顶部有一个固定的导航栏,然后在它下面有内容。我的一般结构是在体内有一个div,这是React应用程序注入的地方#34;该应用程序本身包含一个顶级" app" div和各种子组件。
<html>
<head>
<title>Sample App</title>
</head>
<body>
<div id="react">
</div>
</body>
<script src="/build/bundle.js"></script>
</html>
我所遇到的问题是,id&#39; div的反应是&#39;没有填充html页面的整个主体。因此,我的应用程序div中的任何内容都溢出了“反应”之外的内容。 DIV。
此代码笔说明了我的问题:http://codepen.io/anon/pen/xGNejM
您可以在页面底部看到应用于html标记的石灰背景正在渗透。好像身体标签没有填满整个屏幕。我认为在html上设置高度为100%,身体会处理这个,但显然不是。
答案 0 :(得分:1)
html和body上的100%高度在启动时填满整个屏幕,但如果内容更长则不会。将外部div设置为overflow:hidden
,将内部div设置为overflow: auto
。
我修改了您的fiddle。
答案 1 :(得分:0)
尝试对身体进行隐式测量:
body { height: 100vh; width: 100vw; }
vh
and vw
viewport height
and viewport width
就像类固醇ems
一样。
<强>更新强>
http://arcx.s3.amazonaws.com/test.html
因此,根据我收集的内容,您需要从#react > #app
显示内容,而#react > #app
本身必须根据其内容#child
展开。我做了几件事:
position: relative
height: 100%
替换为height: 100vh
html,body
上未添加维度并添加了position: fixed
footer#foot
position:relative
,因此底部有填充,以防止内容#child
从显示屏上被切断。overflow: scroll
(我选择scroll
而不是auto
我不喜欢跳转滚动条)到#child
但我不需要将overflow: hidden
应用于任何事情,因为我将其他组件设为“静态”。内容是可编辑的,因此键入并按住输入密钥100,000次,它仍然会在没有截止或文本跳过边界的情况下展开。当你在里面注入内容时,你可能需要一个<br
&gt;最后还是\n
以获得良好的衡量标准。