CSS基础

CSS代码书写位置

内部样式表

书写在style元素中

内联样式表,元素样式表

直接书写在元素的style属性中

外部样式表

将样式书写到独立的css文件中。

1). 外部样式可以解决多页面样式重复的问题
2). 有利于浏览器缓存,从而提高页面响应速度
3). 有利于代码分离(HTML和CSS),更容易阅读和维护

一些常见的样式声明

color:red;/*字体颜色*/
backgroud-color:blue;/*背景颜色*/
font-weigth:bold;/*字体粗细*/
font-size:15px;/*字体大小*/
font-family:consolas;/*字体类型*/
font-style:italic;/*字体样式*/
text-decoration:solid;/*文本修饰*/
line-height:1em;/*行高*/
text-align:center;/*元素内部文字的水平排列方式*/
width:100px;/*宽度*/
height:100px;/*高度*/
letter-space:1em;/*文字间隙*/

选择器

  • 帮助你精准的选择想要的元素
h1{
    color:red;
    background-color:lightblue;
    text-align: center;
}

CSS规则 = 选择器 + 声明块(出现在大括号里)
声明块中包含很多属性,每一个属性表达了某一种样式

简单选择器

  1. ID选择器
  2. 元素选择器
  3. 类选择器
    . +类名
  4. 通配符选择器
    *,选中所有元素
  5. 属性选择器
    根据属性名和属性值选择
  6. 伪类选择器
    选中某些元素的某种状态
    1)link: 超链接未访问时的状态
    2)visited: 超链接访问过后的状态
    3)hover: 鼠标悬停状态
    4)active:激活状态,鼠标按下状态
    爱恨法则:LOVE HATE
    更多伪类选择器
    1)first-child
    选择第一个子元素
    2)last-child
    选择最后一个子元素
    3)nth-child
    选择第几个子元素
    4)nth-of-type
    选中指定的子元素中第几个某类型的元素
  • even:选中偶数,等同于2n

  • odd:选中奇数,等同于2n+1

    元素名 + : + 伪类选择器

  1. 伪元素选择器
    元素名 +: : + 伪元素选择器
    1)first-letter:选中元素中第一个字母
    2)first-line:选中元素中的第一行文字
    3)selection:选中被用户框选的内容

选择器的组合

  1. 后代元素 —— 空格
  2. 子元素 —— >
  3. 相邻兄弟元素 —— +
  4. 后面出现的所有兄弟元素 —— ~

选择器的并列

选择器1 + , +选择器2 ……

层叠

  • 不同的样式,多次应用于同一个元素(权重计算)

比较重要性

  • 重要性从高到低
  1. 作者样式表中的!important样式
  2. 作者样式表中的普通样式
  3. 浏览器默认样式表中的样式

比较特殊性

  1. 选择器选中的范围越窄,越特殊
  2. 计算机通过选择器计算出一个4位数(x x x x)
    千位:如果是内联样式,记1,否则记0
    百位:等于选择器中所有id选择器的数量
    十位:等于选择器中所有类选择器、属性选择器、伪类选择器的数量
    个位:等于选择器中所有元素选择器、伪元素选择器的数量

比较源次序

  • 代码书写靠后的胜出

盒模型

行盒(display:inline)

  1. 在页面中不换行。
  2. 盒子沿着内容延伸,不能设置宽高,可以通过调节字体大小、行高、字体类型来间接调节宽高。
  3. 内边距、边框、外边距只有水平方向有效,垂直方向上不会实际占据空间
  4. 浏览器默认样式表设置的块盒:容器元素、h1~h6、p

块盒(display:block)

  1. 在页面中独占一行
  2. 常见的行盒:span、a、img、video、audio

行块盒(display:inline-block)

  1. 不独占一行
  2. 盒模型中所有尺寸都有效

盒子的组成部分

在这里插入图片描述

  1. content(内容盒)
  • width,height分别设置内容的宽高,此部分称为内容盒
  1. padding(填充盒)
  • padding-top , padding-bottom , padding-left , padding-right
  • 简写属性padding:上 下 左 右
  • 填充区 + 内容区 = 填充盒
  1. border(边框)
  • 边框 = 边框宽度 + 边框样式 + 边框颜色
  • border-width , border-style , border-color
  • 填充区 + 内容区 + 边框 =边框盒
  • 溢出处理:overflow,控制内容溢出边框盒后的处理方式
  • 默认情况下,背景覆盖边框盒,可以通过background-clip进行修改
  1. margin(外边距)
  • 边框到其他盒子的距离
  • margin-top , margin-left , margin-right ,margin-bottom

常规流

常规流布局

  1. 所有元素默认下都属于常规流布局:及块盒独占一行,行盒水平依次排列
  2. 包含块:每个盒子都有它的包含块,包含块决定了盒子的排列区域
  3. 绝大部分情况盒子的包含块为其父元素的内容盒

块盒

  1. 每个块盒的总宽度必须刚好等于内容块的宽度,宽度的默认值为 auto
  2. margin取值可以是 auto(将剩余空间吸收) ,默认值为 0 。width 比 margin 的吸收能力强。
  3. 若所有所有值计算完后,仍有剩余空间,则剩余空间由 margin-right 吸收
  4. 在常规流中,若想使块盒在其包含块中居中,可以定宽、然后左右 margin 设置为 auto
  5. height 设置为 auto 表示高度适应内容
  6. margin 设置为 auto 表示 0
  7. width、padding、margin可取值为百分比,该百分比相对于包含块的宽度
  8. 包含块的高度不取决于子元素的高度,百分比相对于父元素高度

浮动

基本特点

  1. 属性符号 float
  • left:左浮动,元素靠上靠左
  • right:右浮动,元素靠上靠右
  • 默认为 none
  1. 当一个元素浮动后 display 属性修改为 block,浮动元素的包含块为其父元素的内容盒

盒子尺寸

  1. 当宽度为 auto 时,宽度适应内容
  2. 当高度为 auto 时,高度适应内容
  3. margin 为 auto 时,表示 0

盒子排列

  1. 浮动盒子在包含块中排列时,会避开常规流盒子
  2. 常规流块盒在包含块中排列时,无视浮动盒子
  3. 行盒在排列时,会避开浮动盒子

高度坍塌

  1. 原因:常规流盒子高度为自动,在计算时,无视浮动盒子
  2. CSS属性clear:
  • none:默认值
  • left:清除左浮动,该元素必须出现在前面所有左浮动盒子的下方
  • right:清除右浮动,该元素必须出现在前面所有右浮动盒子的下方
  • both:清除左右浮动,该元素必须出现在前面所有浮动盒子的下方
  1. 高度坍塌解决方法
  • 在高度坍塌的元素的父元素添加一个类样式clearfix
.clearfix::after{
    content:"";
    display:block;
    clear:both;
}

定位

基本特点

  • 手动设置盒子的位置

position属性

static:默认值(不定位)

relative:相对定位

  1. 不会使元素脱离文档流,只让元素在原本的位置上进行偏移
  2. 通过 left 、right 、top 、bottom 调整位置(不会对别的盒子产生影响)

absolute:绝对定位

  1. 宽高为auto,适应内容
  2. 包含块变化:找祖先中第一个定位元素,该元素的填充盒为其包含块。若找不到,则它的包含块为整个网页(初始化包含块)
  3. display 属性为 block ,且不浮动

fixed:固定定位

  1. 与绝对定位相同,但其包含块固定为视口
  2. display 属性为 block ,且不浮动
  3. 选择器

  • 帮助你精准的选择想要的元素

简单选择器

  1. ID选择器
  2. 元素选择器
  3. 类选择器
    . +类名
  4. 通配符选择器
    *,选中所有元素
  5. 属性选择器
    根据属性名和属性值选择
  6. 伪类选择器
    选中某些元素的某种状态
    1)link: 超链接未访问时的状态
    2)visited: 超链接访问过后的状态
    3)hover: 鼠标悬停状态
    4)active:激活状态,鼠标按下状态
    爱恨法则:LOVE HATE
    更多伪类选择器
    1)first-child
    选择第一个子元素
    2)last-child
    选择最后一个子元素
    3)nth-child
    选择第几个子元素
    4)nth-of-type
    选中指定的子元素中第几个某类型的元素
  • even:选中偶数,等同于2n

  • odd:选中奇数,等同于2n+1

    元素名 + : + 伪类选择器

  1. 伪元素选择器
    元素名 +: : + 伪元素选择器
    1)first-letter:选中元素中第一个字母
    2)first-line:选中元素中的第一行文字
    3)selection:选中被用户框选的内容

选择器的组合

  1. 后代元素 —— 空格
  2. 子元素 —— >
  3. 相邻兄弟元素 —— +
  4. 后面出现的所有兄弟元素 —— ~

选择器的并列

选择器1 + , +选择器2 ……

层叠

  • 不同的样式,多次应用于同一个元素(权重计算)

比较重要性

  • 重要性从高到低
  1. 作者样式表中的!important样式
  2. 作者样式表中的普通样式
  3. 浏览器默认样式表中的样式

比较特殊性

  1. 选择器选中的范围越窄,越特殊
  2. 计算机通过选择器计算出一个4位数(x x x x)
    千位:如果是内联样式,记1,否则记0
    百位:等于选择器中所有id选择器的数量
    十位:等于选择器中所有类选择器、属性选择器、伪类选择器的数量
    个位:等于选择器中所有元素选择器、伪元素选择器的数量

比较源次序

  • 以代码书写靠后的为准
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值