Day12 CSS3 学习笔记

123 阅读5分钟

1 CSS3 基本语法

1.1 CSS3 浏览器私有前缀

chrome 浏览器: -webkit-
safari 浏览器: -webkit-
firefox 浏览器: -moz-
旧 opera 浏览器: -o-
旧 IE 浏览器:-ms-
-webkit-border-radius: 20px;
-moz-border-radius: 20px;
-ms-border-radius: 20px;
-o-border-radius: 20px;
border-radius: 20px;

1.2 CSS3 新增长度单位

rem 根元素字体大小的倍数,只与根元素字体大小有关。

vw 视口宽度的百分之多少 10vw 就是视口宽度的10%。

vh 视口高度的百分之多少 10vh 就是视口高度的10%。

vmax 视口宽高中大的那个的百分之多少。

vmin 视口宽高中小的那个的百分之多少。

1.3 CSS3 新增颜色设置方式

rgba a 是 opacity 表示不透明度,取值 0 ~ 1 之间,数值越大越不透明。 rgba(255, 0, 0, .8)

hsl h 表示色调,取值0~360; s 表示饱和度,取值 0% ~ 100%;l 表示亮, 取值0% ~ 100%。 hsl(120, 100%, 50%)

hsla 在hsl 的基础上添加了不透明度。 hsla(180, 100%, 50%, .5)

2 CSS3 选择器

2.1 基本选择器(6个)

  • 标签名选择器

    标签名 {}
    
  • 类名选择器

    .类名 {}
    
  • ID 名选择器

    #ID名 {}
    
  • 全局选择器

    * {}
    
  • 并集选择器(群组选择器)

    选择器1,选择器2,选择器3 {}
    
  • 交集选择器

    p.open {}
    .item.active {}
    

2.2 层级选择器(4个)

  • 后代元素选择器

    选择器1 选择器2 {}
    
  • 子元素选择器

    选择器1 > 选择器2 {}
    
  • 相邻兄弟元素选择器

    选择器1+选择器2 {}
    
    /* 选择类名是 active 元素的后面紧邻的标签名是 li 的兄弟元素 */
    .active+li {
        
    }
    
  • 通用兄弟选择器

    选择器1~选择器2 {}
    
    /* 选择类名是 active 元素的后面所有的标签名是 li 的兄弟元素 */
    .active~li {
        
    }
    

2.3 属性选择器(5个)

  • [属性名] 选择包含某个属性的元素。
  • [属性名="值"] 选择包含某个属性并等于指定值的元素。
  • [属性名^="值"] 选择包含某个属性,属性值以指定的值开头的元素。
  • [属性名$="值"] 选择包含某个属性,属性值以指定的值结尾的元素。
  • [属性名*=“值”] 选择包含某个属性,属性值包含指定值的元素。

2.4 伪类选择器

① 动态伪类选择器(5个)

  • :link 未访问过。用于超链接。
  • :visited 已访问过的;用于超链接。
  • :hover 鼠标悬停在上面。
  • :active 鼠标在上面并鼠标按键按下不松开。
  • :focus 获取焦点的元素;适用于表单控件。

② 目标伪类选择器(1个)

  • :target 地址锚点指向的元素(url中的锚点名与元素的锚点名一致)

③ 语言伪类选择器 (1个,了解)

  • :lang() 根据语言选择元素,元素通过 lang 属性指定语言,如果没有指定从祖先元素上继承。

④ UI元素伪类选择器(3个)

  • :checked 被选中的单选按钮或复选框。
  • :enable 可用的表单控件(只要没有设置 disabled 属性就是可用的)
  • :disabled 不可用的表单控件(设置了 disabled 属性)

⑤ 结构伪类选择器(12个)

  • :root 根元素。
  • :empty 既没有后代元素也没有文本内容的元素。(空格也算文本内容)
  • :first-child 所有兄弟元素中的第一个。
  • :last-child 所有兄弟元素中的最后一个。
  • :nth-child(n) 所有兄弟元素中的第 n 个; n是个数字,从1开始。
  • :nth-last-child(n) 所有兄弟元素中的倒数第 n 个; n是个数字,从1开始。
  • :only-child 选择没有兄弟元素的元素(独生子女)。
  • :first-of-type 所有同标签名兄弟元素中的第一个。
  • :last-of-type 所有同标签名兄弟元素最后一个。
  • :nth-of-type(n) 所有同标签名兄弟元素中的第 n 个; n是个数字,从1开始。
  • :nth-last-of-type(n) 所有同标签名兄弟元素中的倒数第 n 个; n是个数字,从1开始。
  • :only-of-type 选择没有同标签名兄弟元素的元素。

注意:

:nth-child():nth-last-child():nth-of-type():nth-last-of-type() 括号中除了写数字指定第几个,还可以写关键字或公式。 2n 表示2的倍数,3n表示3的倍数,odd表示奇数,even表示偶数

li:nth-child(2n+1) {
    background-color: cyan;
    color: #fff;
} 

li:nth-child(odd) {
    background-color: cyan;
    color: pink;
}
li:nth-child(even) {
    background-color: purple;
    color: yellow;
}

⑥ 否定伪类选择器(1个)

  • :not(选择器) 排除满足括号中选择器条件的元素。

2.5 伪元素选择器(6个)

  • ::first-letter 用于给元素中的第一个文字(字母或汉字)设置样式。
  • ::first-line 用于给元素中的第一行文字设置样式。
  • ::before 动态地给元素创建一个子元素位于最开始的位置,必须设置 content 属性才生效。
  • ::after 动态地给元素创建一个子元素位于最后的位置,必须设置 content 属性才生效。
  • ::placeholder 用于给文本输入框或文本域设置 placeholder 文字的样式。
  • ::selections 用于设置文本被鼠标选中之后的样式。

3 CSS3 新增盒子模型相关样式

① box-sizing 属性

用于设置 width 和 height 设置的是谁的大小,有两个值:

content-box: 默认值,width 和 height 设置的是内容的大小。
border-box:	表示 width 和 height 设置的是盒子的总的大小。

② 盒子阴影 box-shadow

用于设置元素的阴影,可以指定阴影的偏移位置、颜色、模糊值、外延值以及内阴影。

box-shadow:<length>① <length>②;
box-shadow:<length>① <length>② <color>;
box-shadow:<length>① <length>② <length>③;
box-shadow:<length>① <length>② <length>③ <color>;
box-shadow:<length>① <length>② <length>③ <length>④ <color>;
box-shadow:<length>① <length>② <length>③ <length>④ <color> inset;
box-shadow:<length>① <length>② inset;

③ 不透明度 opacity

设置整个元素为半透明效果。 opacity 的值是 0 到 1 之间的小数,数值越大越不透明,1表示完全不透明,0表示完全透明。

opacity 与 rgba 的区别?

opacity 是一个属性,设置的是整个元素的不透明度。

rgba 是颜色的设置方式,用于设置颜色。