# css3基础

## 1、什么是css3?

- 是css技术的升级版本,在css2的基础上,新增了许多特性,弥补了css2的不足,使web页面的开发变得更加高效、便捷

- css3按模块化进行设计,比较重要的css3模块包含、

选择器、框模型、背景和边框、文本效果、2D|3D转换、动画、多列布局、用户界面

- css3优点: CSS3是完全向后兼容,所以没有必要修改现在的设计来让它们继续运作。网络浏览器也还将继续支持CSS2。

## 2、浏览器的私有前缀(兼容性前缀)

- 有些css3的属性还只是最新版的预览版,还没有正式发版, 没有形成标准,只是某些浏览器的专属属性 ,就需要加前缀

- 当一个属性或规则成为标准,并被主流浏览器的最新版普遍兼容的时候,可以去掉私有前缀

- 书写顺序:先写私有css属性,然后再写标准css属性

- 为了兼容老旧版本的浏 览器我们要写以下代码:

- 浏览器、内核、私有前缀

| 浏览器         | 内核    | 私有前缀 |

| -------------- | ------- | -------- |

| chrome、safari | webkit  | -webkit- |

| Opera          | Presto  | -o-      |

| Firefox        | Gecko   | -moz-    |

| IE             | Trident | -ms-     |

- Autoprefixer是一款自动管理浏览器前缀的插件,它可以解析CSS文件并且添加浏览器前缀到CSS内容里,使用Can I Use(caniuse网站)的数据来决定哪些前缀是需要的。

- autoprefixer

- 在vscode中安装autoprefixer插件

- 在外部的css文件中书写相关属性和属性值

- 按下F1,选择autoprefixer:Run,之后会在css文件中添加私有前缀

- 注意:若快捷键冲突,点击fn+f1

```css

input::-webkit-input-placeholder {

color: tomato;

}

input::-moz-placeholder {

color: tomato;

}

input:-ms-input-placeholder {

color: tomato;

}

input::-ms-input-placeholder {

color: tomato;

}

input::placeholder {

color: tomato;

}

.box1 {

width: 100px;

height: 100px;

background-color: tomato;

-webkit-border-radius: 50%;

-moz-border-radius: 50%;

-o-border-radius: 50%;

-ms-border-radius: 50%;

border-radius: 50%;

}

```

## 3、新增选择器

### 3.1 属性选择器

- css2属性选择器

- ele[attr]{ } 指定了属性名为attr的ele元素

- ele[attr=value]{ } 指定了属性名为attr且属性值为value的ele元素

- ele[attr~=value]{ } 指定了属性名称attr,并且属性值词列表中包含value的ele元素

- 注意:要有词列表的时候,属性名=属性值是选择不上的

```css

/*带有class属性的div元素*/

.wrap div[class]{

background: red;

}

/*带有class属性,并且属性值为box的div元素*/

.wrap div[class=box]{

background: pink;

}

/* 带有class属性,并且属性值的词列表中包含box的div元素 */

.wrap div[class~=box]{

background: yellow;

}

/*带有type属性,并且属性值为text的input元素*/

.wrap input[type=text] {

border: 10px solid red;

}

/*带有type属性,并且属性值为password的input元素*/

.wrap input[type=password] {

border: 10px dotted blue;

}

```

- css3新增属性选择器

- ele[attr^=value]{ } 指定了属性名attr,且属性值为value开头的ele元素

- ele[attr$=value]{ } 指定了属性名attr,且属性值为value结尾的ele元素

- ele[attr*=value]{ } 指定了属性名attr,且属性值包含value的ele元素

```css

div {

width: 100px;

height: 100px;

}

/*带有class属性类名以box开头的div元素*/

.warp div[class^=box] {

background-color: tomato;

}

/*带有class属性类名以b结尾的div元素*/

.warp div[class$=b] {

background-color: yellow;

}

/*带有id属性id名为box3的div元素*/

.warp div[id=box3] {

background-color: violet;

}

/*带有class属性,并且属性值有b的div元素*/

.warp div[class*=b] {

font-size: 30px;

}

/*带有id属性,并且属性值有b的div元素*/

.warp div[id*=b] {

font-size: 40px;

}

```

### 3.2 结构伪类选择器

- :root{ } 匹配文档根元素

- ele:first-child{ } 选择一组相同元素中的第一个元素

- ele:last-child{ } 选择一组相同元素中的最后一个元素

- ele:nth-child(n){ } 选择一组相同元素中的第n个元素,n可以是数值、关键词、表达式

- 数值

- 关键词:odd(奇数)|even(偶数)

- 表达式:2n(偶数)|2n+1(奇数)

- ele:nth-last-child(n){ } 选择一组相同元素中的倒数第n个元素,n表示数值、关键词、表达式

**备注: 以上元素必须类型一样**

- ele:first-of-type 选择一组元素中特定类型的第一个子元素的每个元素。

- ele:last-of-type 选择一组元素中特定类型的最后一个子元素的每个元素。

- ele:nth-of-type(n){ } 选择一组元素中特定类型的第n个ele元素

- ele:nth-last-of-type(n){ } 选择一组元素中特定类型的倒数第n个ele元素

**备注 : 以上元素类型可以不一样**

#### child一组与of-type一组的区别

- nth-child强调结构 关系,查找子元素中的第几个

- nth-of-type强调类型,查找类型中的第几个

```html

**备注: 以上元素必须类型一样**

/* 根元素 */

:root {

background-color: azure;

}

.wrap div {

width: 100px;

height: 100px;

}

/* **备注: 以上元素必须类型一样** */

/* 第一个元素 */

.wrap div:first-child {

background-color: tomato;

}

/* 最后一个元素 */

.wrap div:last-child {

background-color: purple;

}

/* div第2个元素 */

.wrap div:nth-child(2) {

background-color: pink;

}

/* ele:nth-last-child(n) {}

选择一组相同元素中的倒数第n个元素,n表示数值、关键词、表达式 */

/* 倒数第2个div元素 */

.wrap div:nth-last-child(2) {

background-color: antiquewhite;

}

<div class="wrap">

<div>第一 1</div>

<div>2</div>

<div>3</div>

<div>4</div>

<div>5倒数第2</div>

<div>最后一个6</div>

</div>

```

```html

- ele:nth-of-type(n){ } 选择一组元素中特定类型的第n个ele元素

- ele:nth-last-of-type(n){ } 选择一组元素中特定类型的倒数第n个ele元素

/* ele:first-of-type 选择一组元素中特定类型的第一个子元素的每个元素 */

.wrap span:first-of-type {

font-size: 40px;

}

.wrap p:first-of-type {

background-color: yellowgreen;

}

.wrap h3:first-of-type {

background-color: tomato;

}

/* - ele:last-of-type 选择一组元素中特定类型的最后一个子元素的每个元素 */

.wrap span:last-of-type {

font-size: 30px;

color: tomato;

}

.wrap p:last-of-type {

background-color: purple;

}

/* - ele:nth-of-type(n){ } 选择一组元素中特定类型的第n个ele元素  */

.wrap p:nth-of-type(2) {

color: blue;

font-size: 30px;

}

.wrap span:nth-of-type(2) {

color: blue;

font-size: 30px;

}

/* - ele:nth-last-of-type(n){ } 选择一组元素中特定类型的倒数第n个ele元素 */

.wrap p:nth-last-of-type(3) {

color: tomato;

font-size: 40px;

}

<div class="wrap">

<span>0span</span>

<p>p1</p>

<p>p2</p>

<h3>h3</h3>

<p>p3</p>

<p>p4</p>

<p>p5</p>

<span>6span</span>

<span>7span</span>

</div>

```

10.14 2022.相关推荐

  1. 3934:C 10 Aug 2022 00:14:04.239 # Fatal error, can‘t open config file ‘/usr/local/redis/./redis-conf

    报错:3934:C 10 Aug 2022 00:14:04.239 # Fatal error, can't open config file '/usr/local/redis/./redis-c ...

  2. 荣耀 MagicBook V 14 2022款评测

    MagicBook V 14 2022 搭载了 TOF 传感器和 500 万像素摄像头,实现隔空手势操作.据荣耀介绍,用户可进行隔空翻页.隔空视频加速及暂停等操作.500 万像素摄像头加持下,这款笔记 ...

  3. RedmiBook Pro 14 2022酷睿版和锐龙版的区别 选哪个好

    RedmiBook Pro 14 2022 外观给人以十足的品质感,这份品质感源自于顺滑的全金属机身,厚度约 15.9mm,但重量达到了 1.45kg,不算很轻,但抓在手里很舒适. A.B 面支持单手 ...

  4. 华硕灵耀X 14 2022和联想YOGA Pro14s的区别 选哪个好

    如果你对笔记本屏幕有更高的要求,灵耀X 14 2022的这块屏幕肯定不会让你失望,其采用了14英寸.2.8K OLED屏幕,16:10比例,92%屏占比.90Hz刷新率.0.2s疾速响应时间,高清显示 ...

  5. 七周三次课(11月29日) 10.11 Linux网络相关 10.12 firewalld和netfilter 10.13 netfilter5表5链介绍 10.14 iptables语法...

    2019独角兽企业重金招聘Python工程师标准>>> 10.11 Linux网络相关 ifconfig 查看网卡ip (yum install net-tools) 安装 -a   ...

  6. 电动力学每日一题 2021/10/14

    电动力学每日一题 2021/10/14 (a) Define r∣∣=xx^+yy^\textbf r_{||}=x\hat x+y\hat yr∣∣​=xx^+yy^​, r∣∣=x2+y2r_{| ...

  7. 七周三次课(1月24日) 10.11 Linux网络相关 10.12 firewalld和netfilter 10.13 netfilter5表5链介绍 10.14 iptables语法...

    七周三次课(1月24日) 10.11 Linux网络相关 10.12 firewalld和netfilter 10.13 netfilter5表5链介绍 10.14 iptables语法 ====== ...

  8. 直击CVPR2017:商汤科技打造技术盛宴23篇论文刮起中国风 By 机器之心2017年7月25日 10:14 近日,CVPR2017 在夏威夷如火如荼地进行,作为全球计算机视觉顶级会议,CVPR

    直击CVPR2017:商汤科技打造技术盛宴23篇论文刮起中国风 By 机器之心2017年7月25日 10:14 近日,CVPR2017 在夏威夷如火如荼地进行,作为全球计算机视觉顶级会议,CVPR 堪 ...

  9. macOS Mojave Version 10.14 新系统字体问题和修改MAC中Launchpad启动器图标行列的数量

    原文:https://www.jianshu.com/p/c4a490775535 原文: macOS Mojave Version 10.14 新系统字体问题 and other 补充: 未知开发者 ...

最新文章

  1. 关于Linux下进程创建的相关知识
  2. Java测试各种数据库连接(用Connection类)
  3. oracle expdp 多线程,Oracle expdp 过滤和并行
  4. ASM_PREFERRED_READ_FAILURE_GROUPS
  5. 反病毒引擎设计全解(四)
  6. cap流程图_3D流程图
  7. Android开发面试题之activity生命周期变化
  8. android 生命周期_Android生命周期组件 Lifecycle 源码详解(一)
  9. css隐藏元素的几种方法与区别
  10. 在高并发环境下该如何构建应用级缓存
  11. mysql更改安装路径6_关于mysql安装后更改数据库路径方法-Centos6环境
  12. 两个表点击分页的时候怎么判断点的是哪一个表_如何对指数估值,估值表怎么用?...
  13. 运行Lattice Diamond时报错 License checkout failed的解决方法
  14. fread函数 linux在哪,fread函数返回值
  15. hexo入门学习(六):文章图片存储到七牛云
  16. 第10节 文件共享服务器—创建/访问共享文件及禁用共享服务
  17. Java设计模式之——策略模式
  18. linux上的客户端连接window上的服务器
  19. thymeleaf引用图片_thymeleaf显示图片(转)
  20. 计算机软件添加信任,瑞星杀毒怎么添加信任软件 添加方法介绍

热门文章

  1. ASP.NET 5介绍
  2. 卡巴斯基6.0企业版管理工具使用手册
  3. 托福口语不同分数段如何复习
  4. Three.js BIM模型轻量化 FPS渲染速率优化 多 实例渲染[Instance]+顶点合并[Merge]
  5. 简单题-【锤锤的饭店】
  6. 不要刻意改变,做自己就好
  7. 计算机:游戏58关攻略,保卫萝卜3单机版游乐场第58关攻略 开局飞机打怪
  8. iOS安全之三攻三防
  9. 2019SCUT_三七互娱杯 C - HRY and fibonacci
  10. oracle空值影响索引么,使用索引的误区之四:空值对索引的影响-数据库专栏,SQL Server...