当前位置: 首页 > news >正文

CSS宣布支持三角函数,下一步是什么?

来自:开源中国(https://www.oschina.net/news/105086/css-to-get-support-for-trigonometry-functions)

2 月底万维网联盟(W3C)CSS 工作组会议宣布了一项决议,批准在 CSS 标准中加入一批新函数,其中包括: 

  • 正弦函数 - sin() 

  • 余弦函数 - cos() 

  • 正切函数 - tan() 

  • 反余弦函数 - acos() 

  • 反正弦函数 - asin() 

  • 反正切函数 - atan() 

  • 使用两个参数 x 和 y 的反正切函数 - atan2() 

  • 平方根函数 - sqrt() 

  • 参数平方和的平方根函数 - hypot() 

  • 开方 - pow()

2001 年 CSS 的升级版本 CSS 3 发布以来,Web 开发人员对 CSS 的利用变得越来越自由多变,不再局限于简单地布局网页,CSS 3 带来的新变化主要包括盒子模型、列表模块、超链接方式、语言模块、背景和边框、文字特效、多栏布局等模块,大大丰富了开发者的想象力与创造力。

比如 CSS 现在能够编写复杂的动画,并支持像 Adobe Photoshop 中那样高级的图像滤镜。虽然目前 CSS 标准已经支持以下数学函数:

  • 计算基本表达式 - calc()

  • 返回最小值 - min()

  • 返回最大值 - max()

  • 获取上限和下限之间的中间值 - clamp()

但是这远远不够,开发者一直需要它拥有处理图形角度并执行一些更高级数学运算的能力,以往这些需要从 JavaScript 层或预处理器去处理,但显然开发者更希望使用原生 CSS 语法去做这些事情,这样可以更加简单的方法处理角度并同步复杂的动画序列,而无需编写自定义 JavaScript 代码或加载庞大的动画库或游戏引擎。

在开发者强烈的要求下,W3C CSS 工作组终于正式宣布批准在 CSS 标准中加入了一系列数学运算函数。

看到这样的消息,不少开发者都沸腾了。在 Reddit 上他们展开了热烈的讨论:https://www.reddit.com/r/programming/comments/azho2c/css_to_get_support_for_trigonometry_functions

有人认为这很自然,下一步显然是复数支持,然后是向量/矩阵,在能够使用 CSS 直接做出一款怪兽级别的项目之前,他们便不会满意;楼下就有人抛出了一个几周前发布的项目,并指出虽然谈不上怪兽级,但是它完全采用 CSS 实现了 3D 效果。

项目地址:https://keithclark.co.uk/labs/css-fps

反对派则表示:为什么 CSS 要这样搞?我认为 CSS 是用于将样式应用于 HTML 文档的东西,计算等操作应该在 JS 中完成。

他认为 CSS 应该轻量级,孤立的 Chrome 实例意味着不同的视图不能共享内存,所以必须复制一大堆东西,这样会导致内存冗余。

有人回复他:

  • 一些 CSS 动画可以使用 GPU 的资源来执行,从而释放 CPU 以用于其它事情。

  • JavaScript 是单线程的,CSS 动画可以放弃对转换的精细控制,以释放主线程。

还有一些人抛出一个观点,认为这直接变成了 CSS 的 TensorFlow binding:Tensorflow.css。

此外还有人认为官方是想让 Sass 中的所有内容成为 CSS 中的标准,也有人顺手吐槽了一把 Firefox:RIP my Firefox。

你怎么看呢?

新的 CSS 三角函数还需要一段时间过渡,但是可以在以下网站上查看自己使用的浏览器是否已经支持:https://caniuse.com。

推荐阅读

《HTML 5与CSS 3权威指南(第4版•上下册)》

  • HTML5与CSS3领域公认的标杆著作,是开发者们学习HTML5与CSS3的事实标准。

  • 前3版累计印刷超过25次,销量超过10万册,网络书店评论14000余条,好评率99%,是同类书中的领头羊,也是原创计算机图书领域的佼佼者。

  • 针对HTML5与CSS3技术的发展和Web应用环境的变化做了有针对性的优化、更新、补充和删除,内容更有针对性,也更实用。

你与世界

只差一个

公众号

“阅读原文”一起了解及购买吧!

相关文章:

  • Serverless:云时代的软件架构核心思想
  • 新书推荐 |《C# 7.0本质论(英文版)》
  • 新书推荐 |《机器学习精讲:基础、算法及应用》
  • 1/10个iPhone Xs = 英伟达最便宜AI计算机,这是唯一的“核弹”?
  • 新书推荐《嵌入式实时操作系统:RT-Thread设计与实现》
  • 新书推荐 |《硅谷设计之道:探寻硅谷科技公司的体验设计策略》
  • 叫板 Android 开发!跨平台应用开发神器 Flutter 又添开源插件!
  • AI大牛推荐的八本必读NLP书籍(建议收藏)
  • 新书推荐 |《HTML 5与CSS 3权威指南(第4版•上下册)》
  • 以女大学生相亲为例,给你讲明白数据挖掘算法
  • 新书推荐 |《网络空间安全防御与态势感知》
  • 新书推荐 |《Hyperledger Fabric技术内幕:架构设计与实现原理》
  • JVM核心知识体系
  • 新书推荐 |《Kubernetes进阶实战》
  • 福利丨45本好书等你来领!
  • [译] React v16.8: 含有Hooks的版本
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • EOS是什么
  • GraphQL学习过程应该是这样的
  • javascript面向对象之创建对象
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • js中的正则表达式入门
  • node和express搭建代理服务器(源码)
  • PHP变量
  • React Native移动开发实战-3-实现页面间的数据传递
  • SQLServer之创建显式事务
  • Vue 2.3、2.4 知识点小结
  • 观察者模式实现非直接耦合
  • 解析 Webpack中import、require、按需加载的执行过程
  • 聊聊redis的数据结构的应用
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 微信小程序设置上一页数据
  • postgresql行列转换函数
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (9)目标检测_SSD的原理
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (附源码)ssm高校运动会管理系统 毕业设计 020419
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (图)IntelliTrace Tools 跟踪云端程序
  • (一) springboot详细介绍
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • (转)大型网站的系统架构
  • .NET Core WebAPI中封装Swagger配置
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .NET HttpWebRequest、WebClient、HttpClient
  • .Net Remoting(分离服务程序实现) - Part.3
  • .net 逐行读取大文本文件_如何使用 Java 灵活读取 Excel 内容 ?
  • .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用?
  • .NET文档生成工具ADB使用图文教程