[JavaScript30 笔记] 03-CSS Variables

写在系列开篇

在学习了基本的 HTML / CSS / JavaScript 之后没有啥 side project 就直接开始学 Angular 做项目。遇到最近很火的JavaScript30这个项目后决心好好实践一下 Vanilla JavaScript。

对于每个挑战,我会自己在看过视频了解原理后自己实现一遍并在 blog 里记录过程、想法和相关资料。源码放在我的 Github上,demo 通过 Github Pages 部署,点击这里或 Github 的 readme 中连接可以访问。

Objective

利用 CSS Variable 和 JS 进行样式属性的控制。


Demo
Demo

Steps

CSS 部分

  1. 定义全局 CSS 变量 --spacing, --blur, --base
  2. 将 CSS 变量添加到样式属性上。

JS 部分

  1. 对每个 type 类型的 input 标签添加监听器,触发事件有 moutsemove, change
  2. 更新全局的 CSS 属性: document.documentElement.style.setProperty()

Things learned

CSS Variable

MDN 文档
一般将 CSS 变量定义在 root element 的 pseudo-class 上,以 '--' 开头

:root {
    --spacing: 10px;
    --blur: 10px;
    --base: #ffc600;
}

在使用时只要用 var(--blur) 进行调用即可。

虽然 Sass/Less 中也有变量,但其是在编译期完成绑定,原生 CSS 变量可以在运行时改变,功能更强大。

<input> tag

MDN The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user. How an <input> works varies considerably depending on the value of its type attribute.

<input> 标签的基本作用是进行用户交互输入数据,根据 "type" 属性制定输入类型,种类非常丰富:

  • type=button: link, menuitem, menuitemcheckbox, menuitemradio, radio, switch, tab
  • type=checkbox: button, menuitemcheckbox, option, switch
  • type=image: link, menuitem, menuitemcheckbox, menuitemradio, radio, switch
  • type=radio: menuitemradio
  • type=color|date|datetime|email|file|hidden: None
  • type=month|number|password|range|research: None
  • type=search|submit|tel|text|url|week: None

这个demo中用到了:

  • color: 根据 OS 唤出取色器
  • range: 一般用于具体数值不重要,可以根据比例估算的输入,默认值为:
    • min: 0
    • max: 100
    • value: min + (max - min) / 2, min 如果 max < min
    • step: 1
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,692评论 1 92
  • 深入理解傅里叶变换Mar 12, 2017 这原本是我在知乎上对傅立叶变换、拉普拉斯变换、Z变换的联系?为什么要进...
    价值趋势技术派阅读 11,085评论 2 2
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    wzhiq896阅读 5,896评论 0 2
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 6,859评论 0 11
  • 既定的选择,哪怕前路昏茫,也要踏破迷疆,垠垠坎坷,磨尽你的锋芒; 阅尽千帆,必定褪去尘世喧嚣。 天穹何广,厚土时茫...
    Rain尧宇阅读 2,994评论 0 0

友情链接更多精彩内容