2013-04-24 47 views
2

我有一种情况,允许用户查看通常分页的表的全部内容,并且在罕见情况下元素变得很长。在Chrome中,当元素的高度超过32,000像素时,背景渐变将分解,呈现为纯黑色和其他各种块。当元素高于大约32,000像素时,Chrome中的背景渐变中断

http://jsfiddle.net/isherwood/hBm4C/1/

background: -webkit-gradient(linear, left top, left bottom, 
    color-stop(0%,#ccc), color-stop(100%,#f5f5f5)); 

我看到从2011年类似的讨论here,但这似乎不同。

回答

2

好吧,这是一种独特而明确下来一个bug在Chrome

如果您从您的造型边境奇迹般地工作正常:

http://jsfiddle.net/hBm4C/2/

.gradient-tall { 
width: 150px; 
height: 35000px; 
display: inline-block; 
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ccc), color-stop(100%,#f5f5f5)); 
vertical-align: top; 

}

要使用渐变和边框,可以使用箱形阴影来实现:

.gradient-tall { 
    width: 150px; 
    height: 35000px; 
    display: inline-block; 
    box-shadow:0 0 0 1px #777; 
    background:#ccc; 
    background-image:-webkit-linear-gradient(#ccc 1%, #f5f5f5 99%); 
    vertical-align: top; 
} 

http://jsfiddle.net/hBm4C/3/

+0

非常有趣。它也修正了我的情况下的渐变。我会尝试把背景放在一个子元素上。 – isherwood 2013-04-24 12:57:22

+0

也可以使用box-shadow创建一个假的边界。将这个添加到答案中。 – daamsie 2013-04-24 13:02:03

+0

+1查找解决方法。如果你需要一个边框,你可以尝试使用'outline'代替;这似乎工作的地方'边界'不(我只是检查小提琴,它很好)。 'box-shadow'也可能是一个选项,虽然它比'outline'更复杂。或者,使用':before'或':after'选择器为你的'border'创建一个伪元素。 – Spudley 2013-04-24 13:03:12