css模拟月亮一个月每一天不同的月相代码

代码语言:html

所属分类:布局界面

代码描述:css模拟月亮一个月每一天不同的月相代码

代码标签: css 模拟 月亮 每一天 不同 月相 代码

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="en" >

<head>
  <meta charset="UTF-8">
  

  
  
<style>
moon-phase {
  --moon-phase-blur: 3px;

  --_lat: attr(lat type(<number>), 0);
  --_hour: attr(hour type(<number>), 12);
  --_w: calc(100% - 1% * attr(illumination type(<number>), 0%));

  --_l: calc(var(--_lat) * 1.5deg);
  --_a: calc(((var(--_hour) - 12) * 15 * 0.7) * 1deg);
  --_r: calc(var(--_l) + var(--_a));

  aspect-ratio: 1;
  border-radius: 50%;
  display: block;
  overflow: clip;
  position: relative;
  rotate: var(--_r, 0deg);
}

moon-phase::before {
  background: url('//repo.bfw.wiki/bfwrepo/icon/67f7579490770.png') center / cover no-repeat;  
  content: '';
  filter: var(--moon-phase-filter, sepia(1) grayscale(.25));
  inset: 0;
  position: absolute;
}

moon-phase::after {
  background-color: var(--moon-phase-mask-bg, #000);
  border-radius: var(--_btlr, 0) var(--_btrr, 0) var(--_bbrr, 0) var(--_bblr, 0);
  content: '';
  filter: var(--moon-phase-mask-filter, blur(var(--moon-phase-blur, 0px)));
  height: 100%;
  inset-inline: var(--_ii, auto 0);
  opacity: var(--moon-phase-mask-opacity, .85);
  position: absolute;
  width: var(--_w);
}

/* Phases */
[phase*="first-quarter"],
[phase*="waxing"] {
  --_ii: 0 auto;
}
[phase*="crescent"],
[phase*="first-quarter"],
[phase*="waxing"] {
  --_bblr: 100%;
  --_btlr: 100%;
}
[phase*="crescent"],
[phase*="last-quarter"],
[phase*="waning"] {
  --_btrr: 100%;
  --_bbrr: 100%;
}
[phase*="gibbous"]::after {
  border-radius: 0;
  width: 100%;
}
[phase="waxing gibbous"]::after {
  mask: radial-gradient(circle at 100% 50%,
    #0000 calc(100% - var(--_w)),
    #000 .........完整代码请登录后点击上方下载按钮下载查看

网友评论0