在CSS中创建星空背景

时间:2015-11-26 22:44:56

标签: html css

我正在使用纯代码制作太阳能系统网站,不使用任何图像。问题是我无法弄清楚如何在后台获得星星。我试图在黑色背景上得到像黄色展开的波尔卡圆点图案。这是我的代码(为每个其他星球重复div和样式)。

html,
body {
  width: 100%;
  height: 100%;
  background-color: black;
}
#sun {
  position: absolute;
  top: 50%;
  left: 50%;
  height: 200px;
  width: 200px;
  margin-top: -100px;
  margin-left: -100px;
  border-color: orange;
  border-width: 2px;
  border-style: solid;
  border-radius: 50%;
  box-shadow: 0 0 64px yellow;
  background-color: yellow;
}
#mercury {
  position: absolute;
  top: 0;
  left: 50%;
  height: 10px;
  width: 10px;
  margin-left: -5px;
  margin-top: -5px;
  border-radius: 50%;
  background-color: #ffd9b3;
}
#mercury-orbit {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 260px;
  height: 260px;
  margin-top: -130px;
  margin-left: -130px;
  border-width: 2px;
  border-style: dotted;
  border-color: white;
  border-radius: 50%;
  -webkit-animation: spin-right 22s linear infinite;
  -moz-animation: spin-right 22s linear infinite;
  -ms-animation: spin-right 22s linear infinite;
  -o-animation: spin-right 22s linear infinite;
  animation: spin-right 22s linear infinite;
}
@-webkit-keyframes spin-right {
  100% {
    -webkit-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    -o-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
@keyframes spin-right {
  100% {
    -webkit-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    -o-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
<div id="sun"></div>
<div id="mercury-orbit">
  <div id="mercury"></div>
</div>

2 个答案:

答案 0 :(得分:4)

由于this code pen,我找到了一个纯CSS解决方案。这会让你的网站看起来像this - 遗憾的是我无法复制粘贴整个CSS,因为它太长了(超过40,000个字符,StackOverflow只允许我为代码片段粘贴30,000个)。原始代码是用SASS生成的,编译后,它的时间太长了。

<div id='stars'></div>
<div id='stars2'></div>
<div id="sun"></div>
<div id="mercury-orbit">
  <div id="mercury"></div>
</div>

生成这些明星的SASS代码:

// n is number of stars required
@function multiple-box-shadow ($n) 
  $value: '#{random(2000)}px #{random(2000)}px #FFF'
  @for $i from 2 through $n
    $value: '#{$value} , #{random(2000)}px #{random(2000)}px #FFF'

  @return unquote($value)

$shadows-small:  multiple-box-shadow(700)
$shadows-medium: multiple-box-shadow(200)
$shadows-big:    multiple-box-shadow(100)

#stars
  width: 1px
  height: 1px
  background: transparent
  box-shadow: $shadows-small

答案 1 :(得分:1)

来自this,一个美好的星夜。

background-color:black;
background-image:
radial-gradient(white, rgba(255,255,255,.2) 2px, transparent 40px),
radial-gradient(white, rgba(255,255,255,.15) 1px, transparent 30px),
radial-gradient(white, rgba(255,255,255,.1) 2px, transparent 40px),
radial-gradient(rgba(255,255,255,.4), rgba(255,255,255,.1) 2px, transparent 30px);
background-size: 550px 550px, 350px 350px, 250px 250px, 150px 150px; 
background-position: 0 0, 40px 60px, 130px 270px, 70px 100px;