gpt4 book ai didi

javascript - 如何将 div 调整为客户端视口(viewport)高度?

转载 作者:太空宇宙 更新时间:2023-11-04 13:38:17 26 4
gpt4 key购买 nike

好的,所以我想要一系列 div,它们是用户浏览器窗口的确切宽度和高度,而不管屏幕大小。我可以轻松地使用“宽度:100%;”使 div 水平拉伸(stretch)。但我无法弄清楚如何使高度自行拉伸(stretch)。我猜我需要使用一些 javascript 来判断高度,然后再使用另一个来调整单独的 div 的大小。不幸的是,我是一个完整的 javascript n00b,经过两个小时看似毫无结果的搜索并提出了大约 100 个“解决方案”,这是我得到的(我确信在某些时候我可能已经接近答案):

var viewportHeight = "height:" + document.documentElement.clientHeight; 

getElementById('section-1').setAttribute('style', viewportHeight);



<div class="section" id="section-1"></div>

<div class="section" id="section-2"></div>

<div class="section" id="section-3"></div>

编辑:啊我应该更清楚,我试图让所有三个 div 占据整个屏幕,所以你必须向下滚动才能看到每个 - 几乎就像单独的幻灯片。这个想法是每一个都占据整个屏幕,这样你就无法看到下一部分,直到你向下滚动,而不是让三个 div 占据屏幕的三分之一。

最佳答案

如果您还没有尝试过,您将希望通过使用 CSS 查看 DOM 中元素的父子继承。

我想要强调的是,每个给你 JS hack 来完成这个的人不仅给你提供了过大的杀伤力(你确实要求 JavaScript 解决方案,所以他们给你了!),但这也偏离了标准。 HTML 用于结构,CSS 用于表示,而 JavaScript 用于行为方面……将 div 设置为加载时视口(viewport)的宽度是一个表示方面,应该在 CSS 中完成……而不是 JavaScript。如果您尝试根据事件或用户交互更改宽度,那么 JavaScript 是您的 friend ......但现在只坚持使用 HTML 和 CSS。

诀窍是大多数元素都有未定义的高度 - 高度稍后由元素包含的内容定义。

如果你想“欺骗”一个元素使其具有不同于它想要的默认高度的高度,你必须显式定义它。由于您想从视口(viewport)继承您的高度,因此您必须定义顶部的高度并将其降低...

您可能很幸运,可以完全避免使用 JavaScript(不必要)。只需使用 CSS。

尝试这样的事情:

html, body {
height: 100%;
width: 100%;
}

现在,当您稍后尝试设置 div 时,请指定 width: 100% 并且高度将从 html 继承 --> body --> 分区。

尝试一下,看看是否能解决您的问题 - 如果不能,请将我们指向一个网站、一个 pastebin 或一个包含代码的东西,我们可以向您展示如何做(而您发布的代码是JavaScript 的尝试,这只是代码的一部分 - 将完整的东西发布到服务器或临时站点(如 pastebin))。

这是我写的一些示例代码(在 Chromium 中测试过):

HTML:

<html>
<head>
<title>Test Divs at 100%</title>
<link rel="stylesheet" type="text/css" href="divtest.css"
</head>
<body>
<div class="test1">aef</div>
<div class="test2">aef</div>
<div class="test3">aef</div>
</body>
</html>

CSS:

html, body {
width: 100%;
height: 100%;
background-color: #793434;
padding: 0;
margin: 0;
}

div {
height: 100%;
width: 100%;
}

.test1 {
background-color: #E3C42E;
}

.test2 {
background-color: #B42626;
}

.test3 {
background-color: #19D443
}

关于javascript - 如何将 div 调整为客户端视口(viewport)高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19193801/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com