【发布时间】:2014-01-28 19:56:43
【问题描述】:
我正在尝试将线性渐变用作页面的背景。渐变根本没有显示,背景保持白色。这是重现该问题的最少代码:
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<meta charset="utf-8">
<style type="text/css">
body
{
width:100%;
margin-left:-50%;
position:absolute;
left:50%;
background: rgb(0, 0, 0);
background: -moz-linear-gradient(270deg, rgb(0, 0, 0) 1%, rgb(21, 126, 250) 99%);
background: -webkit-linear-gradient(270deg, rgb(0, 0, 0) 1%, rgb(21, 126, 250) 99%);
background: -o-linear-gradient(270deg, rgb(0, 0, 0) 1%, rgb(21, 126, 250) 99%);
background: -ms-linear-gradient(270deg, rgb(0, 0, 0) 1%, rgb(21, 126, 250) 99%);
background: linear-gradient(0deg, rgb(0, 0, 0) 1%, rgb(21, 126, 250) 99%);
}
</style>
</head>
<body>
This is a test and a bad one at that.
</body>
</html>
现在,如果我删除 position:absolute,渐变会起作用。我究竟做错了什么?我需要那个position:absolute,那我该怎么办?
编辑:在 Chrome 和 Firefox 中尝试过。
【问题讨论】:
-
为什么需要body标签绝对定位?
-
因为为了简洁起见,这个例子是最小的,而我的 CSS 实际上比这更复杂。
-
通常你不会设置body absolute。你不能和 relative 一样吗?
-
将body标签绝对定位有点不寻常(我不确定它的好处)。如果您将文本放在另一个容器中并定位它,那么您应该很高兴。不要忘记给元素一些维度(使用 height 属性和 display:block)
-
是的,这似乎有效,非常感谢。我不太喜欢使用多余的 div,而且我仍然看不出我的代码有什么问题,但如果没有更好的选择,我会选择这个。再次感谢。
标签: css linear-gradients