在CSS中混合两种颜色作为背景

戴维德

我想将两种颜色堆叠在另一种之上。我通过创建和合并两个div来做到这一点,其中一个div的不透明度为60%。我想知道是否有一种更简单的方法只需要一个div有两种颜色,或者只需要一种将两种颜色混合在一起的颜色。

我在这里发布我的代码,如果您发现任何不良做法,请告诉我。我渴望提高自己的技能。

* {
  padding: 0;
  margin: 0;
  border: 0;
  box-sizing: border-box;
}


/* ~~~~~~~~~~SKY~~~~~~~~~~ */

#sky {
  position: relative;
  z-index: -100;
  width: 100vw;
  height: 100vh;
  background-image: linear-gradient( to top, midnightblue, black);
}


/* ~~~~~~~~~~MOON~~~~~~~~~~ */

.moon {
  position: absolute;
  top: 3%;
  right: 0%;
  width: 200px;
  height: 200px;
  border-radius: 50%;
}

#dark-moon {
  background-color: silver;
}

#light-moon {
  background-color: goldenrod;
  background-image: radial-gradient(dimgrey 20%, transparent 16%), radial-gradient(dimgrey 15%, transparent 16%);
  background-size: 60px 60px;
  background-position: 0 0, 30px 30px;
  opacity: 60%;
}


/* ~~~~~~~~~~SEA~~~~~~~~~~ */

#sea {
  position: absolute;
  bottom: 0%;
  width: 100vw;
  height: 25vh;
  background-color: #48B;
}
<div id="sky">
  <div id="dark-moon" class="moon"></div>
  <div id="light-moon" class="moon"></div>
</div>

<div id="sea"></div>

如您所见,银色的月亮上有金色的月亮。我只有一颗月亮怎么能得到相同的结果?

陪同Afif

您可以使用伪元素和多个背景使用0个元素进行处理:

html {
  min-height: 100%;
  background: linear-gradient( to top, midnightblue, black);
}

html::before {
  content:"";   
  position: absolute;
  top: 3%;
  right: 0;
  width: 200px;
  height: 200px;
  border-radius: 50%;
  background: 
    linear-gradient(rgba(192,192,192,0.4) 0 0),
    radial-gradient(dimgrey 20%, transparent 16%), 
    radial-gradient(dimgrey 15%, transparent 16%) 30px 30px,
    goldenrod;
  background-size: 60px 60px;
}

html::after {
  content:"";
  position: absolute;
  bottom: 0;
  left:0;
  right:0;
  height: 25vh;
  background: #48B;
}

另一个进一步优化代码的奇特想法:

html {
  min-height: 100%;
  background: 
   linear-gradient(#48B 0 0) bottom/100% 25vh no-repeat fixed,
   linear-gradient(black,midnightblue);
}

html::before {
  content:"";   
  position: absolute;
  top: 3%;
  right: 0;
  width: 200px;
  height: 200px;
  border-radius: 50%;
  background: 
    linear-gradient(#48B 0 0) bottom/100% 25vh no-repeat fixed,
    linear-gradient(rgba(192,192,192,0.4) 0 0),
    radial-gradient(dimgrey 20%, transparent 16%) 0    0   /60px 60px, 
    radial-gradient(dimgrey 15%, transparent 16%) 30px 30px/60px 60px,
    goldenrod;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我们可以在CSS背景中混合两种颜色作为渐变工具在Photoshop中进行吗

来自分类Dev

如何在UIButton背景中设置两种颜色

来自分类Dev

Android的两种颜色背景

来自分类Dev

QPushButton中的两种颜色的文本

来自分类Dev

Android布局背景有两种颜色

来自分类Dev

两种颜色表单元格背景

来自分类Dev

React Native:如何组合两种颜色的视图背景

来自分类Dev

使用CSS填充背景-两种不同的颜色,一种与另一种颜色重叠

来自分类Dev

两种颜色的文字

来自分类Dev

CSS3按钮有两种颜色

来自分类Dev

如何在Android中绘制两种颜色的弧线

来自分类Dev

在边框中添加两种颜色(android)?

来自分类Dev

是使用|的方法。按位运算符将两种颜色混合正确吗?

来自分类Dev

使图表图例代表两种颜色

来自分类Dev

如何比较两种颜色?

来自分类Dev

用两种颜色绘制曲线?

来自分类Dev

两种颜色订购的热图

来自分类Dev

缓和两种颜色的功能

来自分类Dev

控制插入边框的两种颜色?

来自分类Dev

fancybox边框-两种颜色

来自分类Dev

使图表图例代表两种颜色

来自分类Dev

在两种颜色之间徘徊

来自分类Dev

FloatingActionButton 显示两种颜色(圆圈)

来自分类Dev

通过按下按钮在两种颜色之间交替 UIView 背景

来自分类Dev

CSS是否有可能使文本的颜色在两种颜色之间褪色?

来自分类Dev

在GLSL中将两种颜色映射到另外两种颜色

来自分类Dev

CSS三角形在两种颜色之间过渡

来自分类Dev

CSS三角形在两种颜色之间过渡

来自分类Dev

在水平和垂直方向上快速着色和混合两种颜色的百分比。