CSS: Can I select data value greater than?

后端 未结 1 1209
温柔的废话
温柔的废话 2021-01-16 16:48
30

Is there a way to have (PURE CSS) div in red when age<18 and in blue where age>18

相关标签:
1条回答
  • 2021-01-16 17:25

    Here is an idea based on this previous answer where you can consider CSS variables:

    .box {
      font-size:30px;
      padding:5px;
      display:inline-block;
      font-family:monospace;
      overflow:hidden;
      color:#fff;
      background:
         linear-gradient(red,red) 0 0/100% calc((18 - var(--a))*1px),
         blue;
    }
    .box:before {
      content:attr(style);
      text-indent:-4ch;
      display:inline-block;
    }
    <div style="--a:30" class="box"></div>
    <div style="--a:18" class="box"></div>
    <div style="--a:9 " class="box"></div>
    <div style="--a:17" class="box"></div>
    <div style="--a:0 " class="box"></div>

    You can also do it for text coloration:

    .box {
      font-size:30px;
      padding:5px;
      display:inline-block;
      font-family:monospace;
      overflow:hidden;
      border:5px solid transparent;
      background:
         linear-gradient(#fff,#fff) padding-box,
         linear-gradient(red,red) 0 0/100% calc((18 - var(--a))*1px),
         blue;
    }
    .box:before {
      content:attr(style);
      text-indent:-4ch;
      display:inline-block;
      color:transparent;
      background:
         linear-gradient(red,red) 0 0/100% calc((18 - var(--a))*1px),
         blue;
      -webkit-background-clip: text;
      background-clip: text;
      -webkit-text-fill-color: transparent;
    }
    <div style="--a:30" class="box"></div>
    <div style="--a:18" class="box"></div>
    <div style="--a:9 " class="box"></div>
    <div style="--a:17" class="box"></div>
    <div style="--a:0 " class="box"></div>

    0 讨论(0)
提交回复
热议问题