这篇文章主要是对CSS基础知识的一个概括,后续会慢慢补充其他知识

CSS介绍

  • CSS:Cascading Style Sheets 层叠样式表

层叠指什么(分为三类)

  • 样式层叠:可以多次对同一选择器进行样式声明
  • 选择器层叠:可以用不同选择器对同一元素进行样式声明
  • 文件层叠:可以用多个文件进行层叠

CSS语法

  • 语法1:样式语法

    选择器 {
      属性名: 属性值;
        /*注释*/
    }
    
  • 语法2:@语法

    1三个常用的语法
    2注意事项: @charset必须放在第一行, 前两个@语句必须以分号[;]结尾
    3@charset "UTF-8";
    4@import url(2.css);
    5@media (min-width: 100px) and (max-width: 200px) {
    6      语法一
    7}
    

Border调试法

写CSS的过程中可能会遇到很多问题,这个时候可以使用Border调试法进行调试

【步骤】
  ① 怀疑某个元素样式有问题
  ② 给这个元素加上border
  ③ border没出现:说明选择器错了或者语法错了
  ④ border出现:看看其他样式代码是否书写正确
  ⑤ bug解决删掉border

文档流(元素在文档中的排列)

【文档流动方向】
    inline 元素从左到右,到达最右边才会换行,且换行会使元素中断
    block 元素从上到下,每一个都另起一行
    inline-block 也是从左到右
	
【元素宽度】
    inline 宽度为内部inline元素的和,不能用width指定
    block 默认自动计算宽度,可用width指定,默认宽度为auto,不是100%
	注意:宽度最好别写100%
    inline-block 结合前两者特点,可用width
	
【元素高度】
    inline 高度由line-height间接确定(与字体有关,字体不一致可能高度不一样),跟height无关
    block 高度由内部文档流元素决定,可以设height
    inline-block跟block类似,可以设置height

overflow溢出:内容大于容器

当内容的宽度或高度大于容器时会溢出
可以用overflow来设置是否显示滚动条
    auto是灵活设置
    scroll是永远显示
    hidden是直接隐藏溢出部分
    visible是直接显示溢出部分(默认)
overflow可以分为overflow-x和overflow-y(不建议使用)

脱离文档流

【两种方式】
    float
    position:absolute/fixed

两种盒模型

分别是
    content-box内容盒:内容就是盒子的边界
    border-box边框盒:边框才是盒子的边界
公式
    content-box :width = 内容宽度
    border-box :width = 内容宽度+padding+border
那个好用:border-box

两种盒模型

margin合并:只在上下方向存在,左右不存在

哪些情况会合并
    父子margin合并
    兄弟margin合并
如何阻止合并
    父子合并可以用给父元素添加padding/border或者给父元素添加:overflow:hidden
    兄弟合并符合预期,可以用inline-block消除

CSS样式

1.内联样式(行内样式)
   特点:将CSS样式定义在HTML开始标记中
   语法:<div style="样式声明1;样式声明2"></div>
     
2.内部样式
   在网页的头元素中增加一对<style>标记
   语法: 
   	<head>
     <style>
        /*注释*/
        选择器 {
        	属性名: 属性值;
        }
        ...
     </style>
    </head>
    
3.外部样式
   在网页中引入样式表文件
     <head>
        <link rel="stylesheet" href="**.css">
     </head>

选择器(主要讲伪类选择器)

作用:匹配元素不同的状态的选择器
语法:
   所有的伪类都是以:作为开始
   选择器:伪类选择器{样式声明}
1.连接伪类
 :link 匹配元素尚未访问的状态
 :visited 匹配元素访问过的状态
2.动态伪类
 :hover 匹配鼠标悬停在元素上时的状态
 :active 匹配元素被激活时的状态(超链接,文本框,密码框点击的时候)
 :focus 匹配元素获取焦点时的状态(文本框和密码框)
3.选择器的优先级
  权值:标识当前选择器的重要程度,权值越大优先级越高。
  元素选择器:1
  类选择器:10
  伪类选择器:10
  ID选择择器:100
  内联样式:1000
  选择器的权值加到一起,大的优先
  权值相同,以后定义的为主

光标

改变鼠标悬停在元素上时,鼠标的状态

属性:cursor
取值:
  1.default: 默认
  2.pointer: 小手
  3.crosshair: +
  4.text: I
  5.wait: 等待
  6.help: 帮助

参考链接