css实现一个柱状图图表效果代码

代码语言:html

所属分类:图表

代码描述:css实现一个柱状图图表效果代码,在chrome中无需js,仅凭css就能实现,但是在其他浏览器需要js的一段代码。

代码标签: css 柱状图 图表

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

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

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


  
<style>
    data-chart {
  --data-chart-bar-bdrs: clamp(0.125rem, -0.35rem + 1cqi, 0.33rem);
  --data-chart-bar-c: currentColor;
  --data-chart-bdw: 1px;
  --data-chart-bds: solid;
  --data-chart-bdc: light-dark(#CCC, #666);
  --data-chart-nolabel-bdw: 1px;
  --data-chart-nolabel-bds: solid;
  --data-chart-nolabel-bdc: light-dark(#EBEBEB, #444);

  --data-chart-caption-h: 1.5rem;
  --data-chart-label-h: 20px;
  --data-chart-label-w: 5rem;
  --data-chart-mih: 275px;
  --data-chart-y-axis-w: 1.5rem;

  --_min: attr(min type(<number>), 0);
  --_max: attr(max type(<number>), 100);

  --_xs: attr(items-xs type(<number>), 0);
  --_sm: attr(items-sm type(<number>), 0);
  --_md: attr(items-md type(<number>), 0);
  --_lg: attr(items-lg type(<number>), 0);
  --_xl: attr(items-xl type(<number>), 0);

  --c1: hsla(210, 60%, 60%, .75);
  --c2: hsla(170, 45%, 55%, .75);
  --c3: hsla(100, 40%, 55%, .75);
  --c4: hsla(60, 40%, 60%, .75);
  --c5: hsla(35, 50%, 65%, .75);
  --c6: hsla(15, 55%, 60%, .75);
  --c7: hsla(350, 50%, 60%, .75);
  --c8: hsla(280, 40%, 60%, .75);
  --c9: hsla(240, 45%, 55%, .75);
  --c10: hsla(200, 30%, 65%, .75);

  background: var(--data-chart-bg, #FFF0);
  border-radius: var(--data-chart-bdrs, .5rem);
  box-sizing: border-box;
  container-type: inline-size;
  display: block;
  font-family: var(--data-chart-ff, ui-sans-serif, system-ui);
  padding: var(--data-chart-p, 0);

  & * { box-sizing: border-box; }

  caption {
    display: none;
    font-size: var(--data-chart-caption-fs, 11px);
    font-weight: var(--data-chart-caption-fw, 500);
    grid-area: 1 / 1 / 2 / 2;
    text-wrap: nowrap;
  }

  table {
    display: grid;
    grid-template-rows: var(--_gtr, var(--data-chart-caption-h) 1fr);
    min-height: var(--data-chart-mih);
  }

  tbody {
    container-type: size;
    display: grid;
    gap: var(--data-chart-bar-gap, .25rem);
    grid-area: 2 / 1 / 4 / 2;
    grid-template-columns: repeat(auto-fit, minmax(var(--data-chart-bar-miw, 1.25cqi), 1fr));

    td {
      --_v: attr(data-v type(<number>), 0);
      --_pv: attr(data-pv type(<number>), var(--_v));
      --_y: calc(1 - ((var(--_v) - var(--_min)) / (var(--_max) - var(--_min))));
      --_py: calc(1 - ((var(--_pv) - var(--_min)) / (var(--_max) - var(--_min))));

      background: var(--data-chart-bar-bg, var(--_bg, light-dark(hsla(210, 100%, 70%, .8), hsla(210, 60%, 60%, .8))));
      color: #0000;
      font-size: var(--data-chart-bar-fs, clamp(0.5625rem, 0.45rem + .5cqi, 0.75rem));
      font-weight: var(--data-chart-bar-fw, 400);
      height: calc(((var(--_v) - var(--_min)) / (var(--_max) - var(--_min))) * 100cqb);
      padding: var(--data-chart-bar-p, .75ch 0 0 0);
      text-align: center;

      &:first-of-type {
        border-radius: var(--data-chart-bar-bdrs) var(--data-chart-bar-bdrs) 0 0;
      }
    }

    th {
      border-block-start: var(--data-chart-x-axis-bdw, 0px) var(--data-chart-x-axis-bds, solid) var(--data-chart-x-axis-bdc, hsla(0, 0%, 41%, .95));
      color: var(--data-chart-x-axis-c, light-dark(#444, #EEE));
      display: none;
      font-size: var(--data-chart-x-axis-fs, clamp(0.5625rem, 0.4rem + .5cqi, 0.6875rem));
      font-weight: var(--data-chart-x-axis-fw, 400);
      grid-row: calc(var(--_c, 1) + 1);
      height: var(--data-chart-label-h);
      overflow-inline: clip;
      padding: var(--data-chart-x-axis-p, 0);
      place-content: c.........完整代码请登录后点击上方下载按钮下载查看

网友评论0