CSS历史
- 在CSS还没诞生之前,html实现样式效果是用自己的标签实现的,比如
<xxx bgcolor="red">
可以让那个标签的背景色变成红色,<center>
则可以使被包裹的标签居中显示。 - 后来人们觉得这种方式看起来太乱了,于是便让html做一个
<style>
标签,把网页样式写在里面,这也是选择器的由来。
<style>
选择器{
属性:值
}
</style>
- 因为当时的网页主要是用于学术论文的发表,所以对文字样式的要求并不高。于是当时就出现了类似CSS模版的东西,于是乎,
<link>
标签开始支持CSS。 - 接下来为了方便论文打印,就出现了媒体查询功能,如果给网页一个
media="print"
属性,就会给打印网页提供格式。CSS的不正交处就是从这里开始的。 - CSS 一开始设计出来的时候并没有想到大家会这么依赖 CSS,所以设计的时候想得特别简单:你要什么功能我就加什么属性。
- 你要颜色,就有 color: red; background-color: red;
- 你要图文混排,就有 float: left
- 你要绝对定位,就有 position: absolute
你要什么功能我就加什么属性,这也就是CSS不正交,或者说属性和元素自相矛盾的根源
CSS学习的难点
如果你不深入了解 CSS,那么你会发现 CSS 不正交,因而有些反直觉。不正交主要表现在两点:
- 各属性之间互相影响
-
margin V.S. border
margin同时出现会发现合并现象,因为借鉴了排版的概念,但是加一个border后,margin又分开了,这就是不正交处。 小圆点 V.S. display
position: absolute V.S. display: inline
- 各元素之间互相影响
position: fixed V.S. transform
float 影响 inline 元素
CSS学习的易点
- 背套路即可应付日常工作
水平居中
垂直居中 - 巧用工具
CSS 3 Generator
CSS该如何学
学套路,比如布局啊,居中啊等等。
把工作和面试时要会的套路都学会!!这样就能解决工作时80%的问题。多看大佬的博客,看20篇以上。
看CSS的规范文档(不推荐,太浪费时间,而且没什么乱用)