# CSS 是什么
CSS: 层叠样式表(Cascading Style Sheets), 是一种为 Web文档/WebApp 添加样式的一种简单方式。它描述了Web内容, 如HTML、SVG、XML等在不同的终端媒体上如何渲染。
CSS定义Web内容的样式,不仅可修饰HTML的样式,也可以修饰 SVG、XML的样式。
参考:
- https://developer.mozilla.org/zh-CN/docs/Web/Guide/CSS/Getting_started/SVG_and_CSS
- https://www.w3.org/Style/styling-XML.en.html
- https://www.w3cplus.com/svg/styling-svg-use-content-css.html
CSS 由 W3C 规范进行标准化。目前 CSS1 现已废弃, CSS2.1 是推荐标准, CSS3 分成多个小模块且正在标准化中。
CSS 可以作为一个用在桌面电脑、移动设备、平面印刷等领域的通用样式语言
# CSS示例
# CSS的主要特征
- 声明式 - 简单易学
- 继承 - 子元素继承父元素的样式 (注意,不是所有的样式都可以继承,如padding)
- 层叠(级联,串连) - 层叠意味着:继承、权重、优先级、覆盖。即由于样式的来源有多种,样式冲突时,依预定义的优先级规则计算出最终样式.
阅读:
- Computed value: https://developer.mozilla.org/en-US/docs/Web/CSS/computed_value
- Used value:https://developer.mozilla.org/en-US/docs/Web/CSS/used_value
- Resolved value: https://developer.mozilla.org/en-US/docs/Web/CSS/resolved_value
# CSS的缺陷
目前CSS的缺陷主要体现在:
- 全局性,不易模块化,代码管理困难,各种副作用。
- 静态声明式,不能抽取公用变量,代码重复冗余。
- 无逻辑, 无基础函数库,缺乏运行时动态计算能力.
- 与JS隔离,不能共享变量.
- 选择器不能根据子元素匹配父元素,如选择包含span的所有div/p。
- 各种兼容性问题
CSS的副作用主要体现在:
- 样式冲突
- 命名冲突
参考:https://philipwalton.com/articles/side-effects-in-css/
← CSS Houdini CSS基础 →