css - 如何创建覆盖整个可见垂直空间的线性渐变(或过渡到实体?)
问题描述
我正在尝试使用线性渐变来处理页面的正文元素。这是CSS:
body {
background: linear-gradient(0deg, white, lightgray);
}
但是,这会按预期产生从白色到浅灰色的渐变,但它只出现在内容后面,而不是内容下方延伸到浏览器窗口底部的“空白”区域(当内容没有完全填满它时)当然。)
更奇怪的是,“空白”区域设置为一些“灰色”级别,我不知道它来自哪里,也不知道如何更改它。
为了解决后者,我尝试了这个,认为当渐变“完成”时,它会继续使用纯色,但这没有效果:
body {
background: linear-gradient(0deg, white, lightgray);
background-color: lightgray;
}
如果我删除渐变线,那么整个背景就会变成lightgray
我所期望的那样,而不是之前的那种“随机灰色”。
那么,如何执行以下任一操作:
- 使渐变扩展到整个窗口(当内容没有到达底部时)或
- 使渐变的结束颜色“继续过去”结束以填充可见区域的其余部分。
两者都对我有用,但我很难过。
解决方案
正如你所说,这真的很奇怪,背景颜色确实占据了窗口的整个高度,而背景渐变却没有。
奇怪,但如果你可以指定一些min-height
到body
.
body {
margin: 0;
background: linear-gradient(0deg, white, lightgray) no-repeat;
background-color: lightgray;
min-height: 100vh;
}
注意:我们在
min-height
这里有,所以即使内容超过窗口高度或没有内容也没关系,它可以双向工作。
更新:
1vh
=1%
视口高度。
vh
是 CSS 单位。
它基本上适用于视口的高度。所以我们需要 body 占据整个视口高度,而不考虑 body 内的内容量。
所以100vh
= 100% 的视口高度。
有关视口的更多信息,请遵循此。
支持:关于视口单元支持跨浏览器。您可以点击此链接。
希望这对您有所帮助。
推荐阅读
- forms - 我的文本表单小部件没有滚动,再次出现同样的问题。我尝试添加 SingleChildScrollView 但它不起作用
- java - Java else if 和 else 在 while 循环下使用 Scanner 时不起作用
- ionic-framework - 三个 js textureloader 显示 CORS 错误以从 Ionic App 的 iframe 中从 S3 Bucket 加载数据
- java - 我需要将正确的字符串放在“new FileReader(“stringpath”)”中的括号中
- c++ - 从零开始的 Linux 10.2.0 gcc 失败
- php - MySQL 填充另一个表 - 使用过程或其他方式
- c# - 使用 C# 和 winforms 从列表中填充文本框
- wordpress - 标题大小 - 产品类别 / woocommerce
- swift - SwiftUI iOS14 - NavigationView + List - 不会填充空间
- sql - Esper:在命名窗口中按值分组,并使用此分组值确定输出 id