Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css 背景色50%为一种颜色,50%为另一种颜色_Css_Background_Gradient - Fatal编程技术网

Css 背景色50%为一种颜色,50%为另一种颜色

Css 背景色50%为一种颜色,50%为另一种颜色,css,background,gradient,Css,Background,Gradient,在一个div中,我想在它的前50%的宽度中放置一个背景色,另一个颜色在它的其他50%的宽度中。理想情况下,在调整大小时,我希望它能够无缝调整,而不会出现任何瑕疵或抖动效果 理想情况下,我希望避免在代码中使用其他div,因为我正在处理难以更改的现有HTML—实际上是在寻找100%CSS解决方案 我正在寻找类似的东西(我用焰火模拟了它): 您可以使用渐变,如下所示: 相关代码: background: #1e5799; /* Old browsers */ background: -moz-line

在一个div中,我想在它的前50%的宽度中放置一个背景色,另一个颜色在它的其他50%的宽度中。理想情况下,在调整大小时,我希望它能够无缝调整,而不会出现任何瑕疵或抖动效果

理想情况下,我希望避免在代码中使用其他div,因为我正在处理难以更改的现有HTML—实际上是在寻找100%CSS解决方案

我正在寻找类似的东西(我用焰火模拟了它):
您可以使用渐变,如下所示:

相关代码:

background: #1e5799; /* Old browsers */
background: -moz-linear-gradient(top,  #1e5799 0%, #1e5799 50%, #000000 50%, #000000 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#1e5799), color-stop(50%,#1e5799), color-stop(50%,#000000), color-stop(100%,#000000)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top,  #1e5799 0%,#1e5799 50%,#000000 50%,#000000 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top,  #1e5799 0%,#1e5799 50%,#000000 50%,#000000 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top,  #1e5799 0%,#1e5799 50%,#000000 50%,#000000 100%); /* IE10+ */
background: linear-gradient(to bottom,  #1e5799 0%,#1e5799 50%,#000000 50%,#000000 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1e5799', endColorstr='#000000',GradientType=0 ); /* IE6-9 */

编辑:水平梯度你可以使用类似的东西,但是基于你必须支持的浏览器,它可能不能在所有浏览器中都工作

background: linear-gradient(to left, #ff0000 50%, #0000ff 50%);

可以使用:before和:after伪元素

#somediv {
  width:50%;
  height:100px;
  position: relative;
}

#somediv:after, #somediv:before {
  content:' ';
  position: absolute;
  width:50%;
  height:100%;
  z-index: -1;
}

#somediv:after {left: 0px; background: #F00;  }
#somediv:before {right: 0px; background: #00F;}
编辑:像这样

甚至可以在ie8中使用,而渐变不会

如果需要更适合您的需要,请告诉我。

.background{
背景:-webkit线性梯度(顶部,#2897e0 40%,#F1F140%);
高度:200px;
}
.背景2{
背景:-webkit线性梯度(右,#2897e0 50%,#28e09c 50%);
高度:200px;
}


请解释这是如何回答这个问题的。这个问题在一个div中。我想在它的前50%的宽度中加一个背景色,在另50%的宽度中加另一个颜色。所以在这里我使用属性-webkit线性渐变(右,颜色50%,颜色50%)。
div {
    background: -webkit-linear-gradient(right, tan 50%, green 50%);
    background: -o-linear-gradient(right, tan 50%, green 50%);
    background: -moz-linear-gradient(right, tan 50%, green 50%);
    background: linear-gradient(to right, tan 50%, green 50%);
}