CSS基础知识

这里写目录标题

  • CSS常用知识点总觉
  • 1.CSS盒模型,在不同浏览器的差异
    • css 标准盒子模型
    • IE盒子模型
  • 2.CSS所有选择器及其优先级、使用场景,哪些可以继承,如何运用at规则
    • css选择器种类有:
    • css选择器优先级:
    • CSS哪些属性可以继承?
    • 常用at规则及使用示例:
  • 3.CSS伪类和伪元素有哪些,它们的区别和实际应用
    • 伪类的例子有:
    • 伪元素的例子有:
  • 4.CSS几种定位的规则、定位参照物、对文档流的影响,如何选择最好的定位方式,雪碧图实现原理
    • 定位的规则
    • 定位总结
    • 雪碧图实现原理:
  • 5.写出尽可能多的水平垂直居中的方案并对比它们的优缺点
    • 水平居中
      • 行内元素水平居中:
      • 块级元素水平居中:
    • 垂直居中
      • 行内元素(元素为行内元素)
      • 块级元素
    • 水平垂直居中
      • 已知高度和宽度的元素
      • 未知高度和宽度的元素
      • 使用flex布局实现(不管元素是否设有宽高)
    • 常用N列布局
      • 两列布局
      • 三列布局
      • 多列等分布局
      • 多列等高布局
  • 6.BFC的布局规则,实现原理,可以解决的问题
  • 7.CSS函数有哪些?
  • 8.PostCSS、Sass、Less的异同,以及使用配置,至少掌握一种
  • 9.CSS模块化方案有哪些?
    • oocss
    • smacss
    • bem
    • style-components
    • CSS Modules
  • 10.CSS如何配置按需加载
  • 11. 如何防止CSS阻塞渲染
  • 12.熟练使用CSS(3)实现常见动画,如渐变、移动、旋转、缩放等等
  • 13.CSS浏览器兼容性写法
    • 浏览器CSS样式初始化
    • 浏览器私有属性
    • CSS hack
  • 14.掌握一套完整的响应式布局方案
    • 附两张CSS知识图谱:

CSS常用知识点总觉

1.CSS盒模型,在不同浏览器的差异

css 标准盒子模型

css盒子模型 又称为框模型(Box Model),包含了元素内容(content)、内边距(padding)、边框(border)、外边距(margin)几个要素。如下图:
CSS基础知识_第1张图片

图中的内层是content依次是padding border margin。通常我们设置背景时就是内容、内边距、边框这三部分,如果border设置颜色的时候会显示boder颜色当boder颜色是透明时会显示background-color的颜色。而该元素的子元素的是从content开始的。而外边距是透明的,不会遮挡其他元素。

元素框的总宽度=width+padding-left+padding-right+border-left+border-right+margin-left+margin-right;

元素框的总高度=height+padding-top+padding-bottom+border-top+border-bottom+margin-top+margin-bottom;

IE盒子模型

IE盒子模型如下图:
CSS基础知识_第2张图片
图中的内层是content依次是content padding border。通常我们设置背景时就是内容、内边距、边框这三部分。而外边距是透明的,不会遮挡其他元素。

元素框的总宽度=width(padding-left+padding-right+border-left+border-right);

元素框的总高度=height(padding-top+padding-bottom+border-top+border-bottom);

两个模型宽度和高度的计算(是不一样的)

w3c中的盒子模型的宽:包括margin+border+padding+width; width:margin2+border2+padding2+width; height:margin2+border2+padding2+height;

iE中的盒子模型的width:包括border+padding+width;

上面的两个宽度相加的属性是一样的。因此我们应该选择标准盒子模型,在网页的顶部加上 DOCTYPE 声明。

2.CSS所有选择器及其优先级、使用场景,哪些可以继承,如何运用at规则

css选择器种类有:

通用选择器:*
id选择器:#header{}
class选择器:.header{}
元素选择器:div{}
子选择器:ul > li{}
后代选择器:div p{}

伪类选择器::hover、::selection、.action、:first-child、:last-child、:first-of-type、:last-of-type、:nth-of-type(n)、:nth-of-last-type(n)等,例如a:hover{}

伪元素选择器: :after、:before等,例如:li:after

属性选择器: input[type=“text”]

组合选择器:E,F/E F(后代选择器)/E>F(子元素选择器)/E+F(直接相邻元素选择器----匹配之后的相邻同级元素)/E~F(普通相邻元素选择器----匹配之后的同级元素)

层次选择器:p~ul 选择前面有p元素的每个ul元素

css选择器优先级:

  • 选择器优先级由高到低分别为:
    !important > 作为style属性写在元素标签上的内联样式 >id选择器>类选择器>伪类选择器>属性选择器>标签选择器> 通配符选择器(* 应少用)>浏览器自定义;
  • 当比较多个相同级别的CSS选择器优先级时,它们定义的位置将决定一切。下面从位置上将CSS优先级由高到低分为六级:
    1. 位于标签里的