所有分类
  • 所有分类
  • 后端开发
探索冷门 CSS 属性,感受 CSS 的独特魅力

探索冷门 CSS 属性,感受 CSS 的独特魅力

【推荐学习:css视频教程】为元素赋予css属性先看一下咱们用css字体属性做的动动画效果:其实quotes的看家本领是它可以接受n个参数!可以把几乎所有css属性进行重置:这个属性让页面的url参数与dom元素互动起来比如当前url是#t

探索冷门 CSS 属性,感受 CSS 的独特魅力

有件事儿挺好玩儿的,那就是CSS绘图~不是只能用图片、SVG或Canvas给网页打扮吗?猜猜,CSS还能画图!都说它简单,有些人认为它根本不算程序语言。然而,其实人家CSS的画功还真不是盖的哦~

探索冷门 CSS 属性,感受 CSS 的独特魅力

div class="box">

CSS的绘图能力

.box {
    width: 180px;
    height: 180px;
    border: 1px solid; 
    background: paint(xxxx); // 主角在此
  }

    
      if (window.CSS) {
        // 因为加载文件 需要启动server
        CSS.paintWorklet.addModule("./paint-grid.js");
      }
    

说实话,CSS不擅长画太复杂的图形,它主要负责网页的外观。但你知道吗?现在已经有办法把这个家伙变成一个小小画家了!利用一些特定的属性和技巧,其实CSS也能搞出一些简单又好玩的图形效果。

registerPaint(
  "xxxx", // 这就是: 方法名
  class {
    paint(context, size) {
      context.fillStyle = 'red';
      context.fillRect(10, 10, 39, 39);
    }
  }
);

探索冷门 CSS 属性,感受 CSS 的独特魅力

这儿得了解下啥叫CSS画图!它不是直接像SVG或者Canvas那样画出图形,而是通过调整元素的边框、背景和渐变之类的东西来达到视觉效果!这个方法听起来挺曲折,不过有时候也会有惊喜喔!

registerPaint(
  "xxxx1",
  class {
    paint(context, size) {
      context.fillStyle = 'red';
      context.fillRect(10, 10, 39, 39);
    }
  }
);
registerPaint(
  "xxxx2",
  class {
    paint(context, size) {
      context.fillStyle = 'green';
      context.fillRect(10, 10, 39, 39);
    }
  }
);

CSS变量的妙用

      .box {
        background: paint(xxxx1);
      }
      .box2 {
        margin-top: 20px;
        background: paint(xxxx2);
      }

探索冷门 CSS 属性,感受 CSS 的独特魅力

css画图里,你得学会用变量,这可是关键。它能帮你设定一些通用的属性值,然后直接用到不同的元素或者样式里面去,这样一来,不光省了不少代码,代码的易读性和可维护性也大大提升了!

// 在全局定义方便js修改
  :root {
    --bg-size: 60;
  }

用CSS变量的话,处理动态图会更容易。比如要让图形跟着用户操作变个色儿,大点儿小点儿或者换个形状啥的,直接改下变量值就能搞定!这招既简单又灵活。

registerPaint(
  "xxxx1",
  class {
    static get inputProperties() {
      return ["--bg-size"];
    }
    paint(context, size, properties) {
      var bgSize = properties.get('--bg-size');
      context.fillStyle = "red";
      context.fillRect(10, 10, bgSize, bgSize);
    }
  }
);

CSS与JavaScript的结合

探索冷门 CSS 属性,感受 CSS 的独特魅力

CSS能画点图,但有时候还得用JavaScript加强功能。JavaScript让我们能够动态制作CSS风格,或者按着用户动作实时调整元素样子。

  p {
    font-size: 150px;
    color: white;
    -webkit-text-stroke: 6px red;
  }

探索冷门 CSS 属性,感受 CSS 的独特魅力

比如用JavaScript就能监控你在网页上点击了什么地方,然后根据这个信息改变页面的样子。这样做会让网页更有互动性,用户看着也舒心。

      p {
        font-size: 150px;
        color: white;
        -webkit-text-stroke: 6px red;
        background-color: rosybrown;
        background-image: -webkit-linear-gradient(top, red, #fd8403, yellow);
        -webkit-background-clip: text;
        color: transparent;
      }

CSS绘图的局限性

 

  高   
  低  

说起来,虽然CSS画图挺好用的,但是,它也有解决不了的问题。比如说,想要画出那些复杂到爆的3D图形或者做动效的话,有点难哟。再说了,它在弄3D特效这块儿也就那么回事,还达不到我们需要的那种层次。然后,就是CSS动画的速度也比不上用JavaScript或者Canvas来做。

探索冷门 CSS 属性,感受 CSS 的独特魅力

还有,用CSS画图的时候,别忘了想想浏览器兼容性的事儿。现在浏览器对CSS的支持确实挺好的,但是有些老版本的浏览器可能不太行。所以咱们做设计和开发的时候得考虑到这个问题。

探索冷门 CSS 属性,感受 CSS 的独特魅力

      div {
        font-size: 150px;
        background: url(../imgs/jojo.webp) no-repeat;
        background-size: 100%;
        background-origin: border-box;
        -webkit-background-clip: text;
        color: transparent;
      }

CSS绘图的未来

探索冷门 CSS 属性,感受 CSS 的独特魅力

虽然有些限制,但是CSS画图之类的东西还是挺让人激动的。毕竟,浏览器技术在进步,还有Web标准也在完善,CSS画图功能会变得更厉害。以后说不定,CSS就变成了网页设计和开发里头必不可少的一部分!

总的来说CSS虽不算专业绘画技巧,但是它有自己那种独到的魔力哦~学习并尝试运用后会发现,CSS除了可以帮我们设计漂亮的网站外,还能创作出一些既简单又好玩儿的图像效果!希望我今天和大家共享的内容能激发点什么有意思的灵感,让咱们都来发掘CSS这玩意儿的无穷可能!

探索冷门 CSS 属性,感受 CSS 的独特魅力

总结与展望

探索冷门 CSS 属性,感受 CSS 的独特魅力

看完咱们这回聊的,你会发现,CSS画出的图案虽有些小毛病,但用起来还是挺给力的。用它,我们就能搞出一些好玩儿的图形效果,而且还能让代码更容易看懂、修改。

nbsp;html>
  
    
      #wrap {
        background-color: black;
        width: 500px;
        height: 500px;
        margin: 0 auto;
        overflow: hidden;
      }
      .box0 {
        background: url(../imgs/jojo.webp) no-repeat;
      }
      .box1 {
        background: url(../imgs/一起干饭.jpeg) no-repeat;
      }
      .box2 {
        background: url(../imgs/gat.webp) no-repeat;
      }
      #box {
        width: 500px;
        height: 500px;
        font-size: 150px;
        margin: 0 auto;
        background-size: 500px 500px;
        background-position: center;
        -webkit-background-clip: text;
        -webkit-text-fill-color: rgba(0, 0, 0, 0.2);
        display: flex;
        justify-content: center;
        align-items: center;
      }
      .text {
        display: none;
      }
    
  
  
    
      
                                 
    
     const oBox = document.getElementById("box"); const textArr = document.getElementsByClassName('text') let i = 0; let n = 800; setInterval(()=>{ oBox.style.fontSize = n + 'px'; n+=3 if(n > 800){ n = 10; textArr[1].style.display = 'none' textArr[2].style.display = 'none' textArr[0].style.display = 'none' textArr[i].style.display = 'block' oBox.classList.remove('box1') oBox.classList.remove('box2') oBox.classList.remove('box3') oBox.classList.add(`box${i}`) i++ if(i > 2){ i = 0 } } },5)   

在未来,随着网络标准不断升级,相信CSS绘图将会越来越强大且便捷,除了让网页颜值更高外,还能帮咱们做出更有创意、互动性更强的页面设计!

探索冷门 CSS 属性,感受 CSS 的独特魅力

小伙伴们,下面有个小问题哈:你们有试过用CSS画图吗?讲真的,你们觉得这个功能怎么样?不论是优势还是挑战,都可以在评论里畅所欲言。别忘了给我们点赞转发,让更多的朋友们发现CSS绘制的有趣之处!

 
jojo的奇妙冒险

原文链接:https://www.icz.com/technicalinformation/web/2024/06/18248.html,转载请注明出处~~~
0

评论0

请先
注意:请收藏好网址www.icz.com,防止失联!站内免费资源持续上传中…!赞助我们
显示验证码
没有账号?注册  忘记密码?