CSS 知识总结

2019-11-04  本文已影响0人  苏wisdom

1 CSS的简介与历史

CSS (Cascading Style Sheets,层叠样式表)是用来控制网页在浏览器中的显示外观的声明式语言。

为什么叫“层叠”呢?
层叠提供了极大的灵活性

版本历史

2 常用工具网站

2.1 caniuse.com

Can I use提供了PC浏览器和手机端浏览器兼容情况的信息,如果你不确定某CSS特性在各个浏览器上的兼容情况,可以直接上这个网站查。

2.2 MDN

MDN是社区维护的前端开发技术文档,内容很新,有问题也会及时修改。我在学CSS的时候就给MDN CSS里的代码demo提过bug,很快就修复了

遇到不熟悉的东西,在搜索引擎搜索keyword MDN

2.3 css-tricks.com

专门收集CSS小技巧的网站
讲解flex
讲解grid

遇到不熟悉的东西,在搜索引擎搜索keyword css-tricks

2.4 zhangxinxu.com

遇到不熟悉的东西,在搜索引擎搜索keyword 张鑫旭

2.5 练习素材

dribbble.com是设计作品整体质量非常高的网站,许多摄影师、设计师和其他创意产业人士都喜欢在这里展示其未完成的设计,通过与其他设计师的共同探讨来激发自己的灵感。

freepik.com Free Vectors, Stock Photos, PSD and Icons

365psd.com UI套件

3 CSS 语法

CSS的语法很简单,主要就两种格式

语法一

选择器 {
    属性名:属性值;
    /*注释*/
}

语法二

@charset "UTF-8";
@import url(default.css);
@media (min-width:100px) and (max-width:200px){
    * {
        margin:0;
        padding:0;
        box-sizing:border-box;
    }
    img{
        max-width:100%
    }
}

4 CSS 重要概念

4.1 内联,块,内联块

在HTML5的概念里,所有元素都可以是内联元素,所有元素也都可以是块级元素。看样式,比如display:inline;就是内联元素。但是浏览器默认会给span加样式display:inline;

4.2 文档流 Normal Flow

指的是元素正常的流动方向。span等内联元素正常是从左到右流动,div等块元素正常是从上到下。

流动方向

宽度

高度

总结一下

4.3 盒模型

盒模型分两种,一种是content box,一种是border box。

两者的区别是,content box的宽度只包含内容content,而border box的宽度包含到border,即border box的宽度=content+padding+border。

CSS中不做box-sizing设置时,默认是content box

content box 内容盒

content box

border box 边框盒

border box

4.4 margin合并

margin collapsing

只有上下会重叠,左右从来不重叠

哪些情况会合并

如何阻止合并

4.5 基本单位

4.5.1 长度单位

MDN font-size

4.5.2 颜色

5 CSS 布局

5.1 float布局

需要兼容IE9时考虑用这个布局

5.1.1 步骤

.clearfix::after {
  content: '';
  display: block;
  clear: both;
}

5.1.2 经验

5.1.3 实践

注意最后一个例子中,图片背景下面多余一部分,用下面的代码去掉

.logo>img {
  height: 26px;
  vertical-align: top;
}

5.2 flex布局

CSStricks上的文章 a-guide-to-flexbox

使用flex布局实现上面的例子

5.2.1 container属性

.container {
    display:flex;
}

5.2.2 items属性

item:first-child{
    order:100;
}
item:nth-child(2){
    order:1;
}

通关 青蛙游戏:
https://flexboxfroggy.com/#zh-cn

5.2.3 经验

5.3 grid布局

尤其适合不规则布局

.container{
    display:grid;
}

通关 Grid Garden 游戏:
https://cssgridgarden.com/#zh-cn

6 CSS 定位

布局是在二维平面上的概念,而定位说的是垂直于屏幕的概念。

可以想像,垂直于屏幕,从上到下依次是 举例

6.1 position属性

举例

6.2 z-index

哪些元素可以创建层叠上下文

注意:负index有可能逃不出小世界
http://js.jirengu.com/xoyuv/12/edit?html,css,output

6.3 经验

7 浏览器的渲染原理

  1. 根据HTML构建DOM树
  2. 根据CSS构建CSSOM
  3. 合并DOM和CSSOM成render tree
  4. Layout布局(文档流,盒模型,计算大小和位置)
  5. Paint绘制(边框颜色、文字颜色、阴影……)
  6. Composite合成(根据层叠关系展示画面)

三种不同的渲染方式

各个浏览器测试的每个属性怎么触发渲染流程:
https://csstriggers.com/

渲染性能优化:
https://developers.google.com/web/fundamentals/performance/rendering

8 CSS动画

将div从左向右移动

8.1 transform

注意

8.2 transition过渡

用来补充关键帧
红色方块逐渐透明示例

不是所有属性都能过渡

8.3 Animation

方块向右再向下移动示例

上一篇 下一篇

猜你喜欢

热点阅读