CSS 3

CSS3现状

  • 在CSS2的基础上新增(扩展)样式
  • 移动端支持优于PC端
  • 不断改进中
  • 应用相对广泛

1.CSS3属性选择器

选择符简介
E[att]选择具有att属性的E元素
E[att="val"]选择具有att属性且属性值等于val的E元素
E[att^="val"]匹配具有att属性、且具有以val开头的E元素
E[att$="val"]匹配具有att属性、且值以val结尾的E元素
E[att*="val"]匹配具有att属性、且值中含有val的E元素

类选择器、属性选择器、伪类选择器,权重为10

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>button {cursor: pointer;}/*属性选择器使用方法*/button[disabled] {cursor: default;}input [type] {color: pink;}input[type="search"]{color: pink;}div[class^="icon"]{color: red;}div[class$="icon"]{color: green;}div[class*="icon"]{color: blue;}</style>
</head>
<body><!--disabled是禁用我们的按钮--><button disabled="disabled">按钮</button><button disabled="disabled">按钮</button><button>按钮</button><button>按钮</button><input type="text" name="" id="" value="文本框"><input type="text" name="" id="" value="文本框"><input type="text" name="" id="" value="文本框"><input type="search" name="" id="" value="搜索框"><input type="search" name="" id="" value="搜索框"><input type="search" name="" id="" value="搜索框"><div class="icon1">图标1</div><div class="icon2">图标2</div><div classs="icon3">图标3</div><div class="iicon3">图标4</div><div class="absicon">图标5</div></body>
</html>

1.2结构伪类选择器

选择符简介
E:first-child匹配父元素中的第一个子元素E
E:last-child匹配父元素中最后一个E元素
E:nth-child匹配父元素中的第n个子元素E
E:first-of-type指定类型E的第一个
E:last-of-type指定类型E的最后一个
E:nth-og-type(n)指定类型E的第n个

nth-child(n)

  • n可以是数字、关键字和公式
  • n如果是数字,就是选择第几个
  • 常见的关键词有even偶数odd奇数
  • 常见的公式如下(如果n是公式,则从0开始计算)
  • 但是第0个元素或者超出了元素的个数会被忽略
公式取值
2n偶数
2n+1奇数
5n5 10 15...
n+5从第5个开始(包含第五个)到最后
-n+5前5个(包含第5个)
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>ul li:first-child {background-color: pink;}ul li:last-child {background-color: deeppink;}ul li:nth-child(8) {background-color: lightpink;}/*nth-child(n) 我们要第几个n就是第几个*/ul li:nth-child(8) {background-color: lightpink;}</style>
</head>
<body><ul><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li></ul>
</body>
</html>

 

2.3伪元素选择器

选择符简介
::before在元素内部的前面插入内容
::after在元素内部的后面插入内容

注意:

  • before和after必须有content属性
  • before在内容的前面,after在内部的后面
  • before和after创建一个元素,但是属于行内元素
  • 因为再dom里面看不见刚才创建的元素,所以我们成为伪元素 
  • 伪元素和标签选择器一样,权重为1

2D转换

转换(transform)是CSS3中具有颠覆性的特征之一,可以实现元素的位移、旋转、缩放等效果转换(transform)你可以简单理解为变形

  • 移动:translate
  • 旋转:rotate
  • 缩放:scale

 二维坐标系

2D转换是改变标签在二维平面上的位置和形状的一种技术 

 2D转换之移动translate

2D移动是 2D转换里面的一种功能,可以改变元素在页面中的位置,类似定位。

1.语法

transform:translate(x,y);或者分开写

transform:translateX(n);

transform: translateY(n);

2. 重点

  • 定义2D转换中的移动,沿着X和Y轴移动元素
  • translate最大的优点:不会影响到其他元素的位置
  • Translate中的百分比单位是相对于自身元素的translate:(50%,50%);
  • 对行内标签没有效果
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>/*移动盒子的位置: 定位  盒子的外边距 2d转换移动*/div {width: 200px;height: 200px;background-color: pink;/*x就是x轴上移动位置 y就是y轴移动位置 中间用逗号分隔transform:translate(x,y);transform: translate(100px,100px);*//*1.如果我们只移动x坐标*/transform: translate(100px,0);/*(100px)*//*我们如果只移动y坐标*/transform: translate(0,100px);/*(100px)*/}</style>
</head>
<body><div></div>
</body>
</html>

 

2D转换之旋转rotate

 2D旋转指的是让元素在二维平面内顺时针旋转或者逆时针旋转。

1.语法

transform:rotate(度数)

2.重点

  • rotate里面跟度数,单位是deg,比如rotate(45deg)
  • 角度为正时,顺时针,负时,为逆时针
  • 默认旋转的中心点是元素的中心点 
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>img {width: 150px;/*顺时针旋转45°*/transform: rotate(45deg);border-radius: 50%;border: 5px solid pink;/*过渡写到本身上,谁做动画给谁加*/transition: all 0.3s;}img:hover {transform: rotate(360deg);}</style>
</head>
<body><img src="pvp.png" alt="">
</body>
</html>

 

2D转换中心transform-origin

我们可以设置元素转换的中心点

1.语法:

transform-origin: x y; 

2.重点

  • 注意后面的参数x和y用空格隔开
  • x y默认转换的中心点是元素的中心点(50% 50%)
  • 还可以给x y设置像素或者方位名词(top bottom left right center) 

 

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>div {width: 200px;height: 200px;background-color: pink;margin: 100px auto;transition:all 1s;/*1.可以跟方位名词*/transform-origin: left bottom;/*一左下角为旋转点*//*2.默认的是 50% 50% 等价于center center*//*3.可以是px 像素*/transform-origin: 50px 50px;}div:hover {transform: rotate(360deg);}</style>
</head>
<body><div></div>
</body>
</html>

2D转换之缩放scale

缩放,顾名思义,可以放大和缩小。只要给元素添加上了这个属性就能控制他放大还是缩小。

1.语法

transform:scale(x,y);

2.注意

  • 注意其中的x和y用逗号分开
  • transform:scale(1,1): 宽和高都放大一倍,相对于没有放大
  • transform:scale(2,2): 宽和高都放大了2倍
  • transform:scale(2):只写一个参数,第二个参数则和第一个参数一样,相当于scale(2,2)
  • transform:scale(0.5,0.5):缩小
  • scale缩放最大的优势:可以设置转换中心点缩放,默认以中心点缩放的,而且不影响其他盒子

 

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>div {overflow: hidden;float: left;margin: 10px;}div img {transition: all 0.4s;}div img:hover {transform: scale(1.1);}</style>
</head>
<body><div><a href="#"><img src="wucaidaohang.png" alt=""></a></div><div><a href="#"><img src="wucaidaohang.png" alt=""></a></div><div><a href="#"><img src="wucaidaohang.png" alt=""></a></div>
</body>
</html>

 2D转换综合写法

注意:

  1. 同时使用多个转换,其格式为:transform: translate()rotate()scale()...等
  2. 其顺序会影响转换的效果,(先旋转会改变坐标轴方向)
  3. 当我们同时有位移和其他属性的时候,记得要将位移放到最前
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>div {width: 200px;height: 200px;background-color: pink;transition: all .5s;}div:hover {/*transform: translate(50px,50px) rotate(180deg);*//*我们同时有位移和其他属性,我们需要把位移放到最前面*/transform: translate(150px,50px) rotate(180deg) scale(1.2);}</style>
</head>
<body><div></div>
</body>
</html>

 

2D转换总结

  • 转换Transform我们简单理解就是变形有2D和3D之分
  • 我们暂且学了三个 分别是位移 旋转和缩放
  • 2D移动translate(x,y)最大的优势是不影响其他盒子,里面参数用%,是相对于自身宽度和高度来计算的
  • 可以分开写比如translateX(x)和translateY(y)
  • 2D旋转rotate(度数) 可以实现旋转元素 度数的单位是deg
  • 2D缩放scale(x,y)里面的参数是数字不跟单位 可以是小数 最大的优势 不影响其他盒子
  • 设置旋转中心点transform-origin:x y;参数可以百分比,像素或者方位名词
  • 当我们进行综合写法,同时有位移和其他属性的时候,记得要将位移放到最前

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/745381.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AJAX 01 AJAX 概念和 axios 使用

2.27 AJAX 学习 AJAX 1 入门01 AJAX 概念和 axios 使用axios 使用案例 02 认识 URLURL组成 03 URL 查询参数axios&#xff0d;查询参数案例 &#xff1a;地区查询 04 常用请求方法和数据提交axios 请求配置axios 错误处理 05 HTTP协议-报文① 请求报文作用&#xff1a;错误排查…

数据结构:堆

堆的概念 1.堆是一个完全二叉树 2.小堆(任何一个父亲<孩子),大堆(任何一个父亲>孩子) 堆的结构 物理结构:数组 逻辑结构:二叉树 #pragma once #include<assert.h> #include<iostream> typedef int HPDataType; typedef struct Heap {HPDataType* _a;int…

使用 Jenkins 管道在 Docker Hub 中构建 Docker 镜像

Jenkins Pipeline 是一个强大的工具&#xff0c;可以自动执行部署。在各个阶段之间拆分的灵活和自定义操作是尝试此功能的一个很好的理由。 构建您自己的 Docker 镜像并将其上传到 Docker Hub 以保持存储库更新是了解 Jenkins Pipeline 如何改进您的工作方式的一个很好的示例。…

产品推荐 - 基于Xilinx Kintex-7 XC7K160T/325T/410T打造的水星Mercury+ KX2核心板

水星Mercury KX2核心板 水星Mercury KX2核心板提供高性价比的Xilinx Kintex-7 28nm FPGA和常见的接口&#xff0c;如USB 2.0、PCIe Gen2和千兆以太网。 KX1有强大的FPGA和标准接口、很多具备LVDS能力的I/O、大容量DDR3 SDRAM、很多高速DSP slices&#xff0c;它既适合高端数字信…

第五十八回 吴用赚金铃吊挂 宋江闹西岳华山-飞桨图像分割套件PaddleSeg初探

鲁智深被贺太守抓住&#xff0c;押入死牢。武松得信后&#xff0c;正想回梁山报信&#xff0c;正好戴宗来了&#xff0c;就请戴宗赶快回梁山搬救兵。宋江说兄弟有难&#xff0c;怎能不救&#xff1f; 于是带了十六个头领来到少华山。 因为华州城池厚壮&#xff0c;宋江等无计可…

【开源】SpringBoot框架实验室耗材管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 耗材档案模块2.2 耗材入库模块2.3 耗材出库模块2.4 耗材申请模块2.5 耗材审核模块 三、系统展示四、核心代码4.1 查询耗材品类4.2 查询资产出库清单4.3 资产出库4.4 查询入库单4.5 资产入库 五、免责说明 一、摘要 1.1…

JavaEE之多线程(创建线程的五种写法)详解

&#x1f63d;博主CSDN主页: 小源_&#x1f63d; &#x1f58b;️个人专栏: JavaEE &#x1f600;努力追逐大佬们的步伐~ 目录 1. 前言 2. 操作系统"内核" 3. 创建线程的五种写法 (我们重点要掌握最后一种写法!!) 3.1 继承 Thread, 重写 run 3. 2 实现 Runnabl…

电脑坏了去维修,第一家报价800,第三家说报废!

这篇文章主要讲的是修理坏掉的电脑。 第一家报价300&#xff0c;第二家报价800&#xff0c;第三家说要报废&#xff01; 相信很多朋友对于修电脑坏了要多少钱有很多困惑&#xff0c;修电脑坏了要多少钱&#xff0c;到底去正规售后服务还是去非品牌店维修一台坏掉的电脑。 今天高…

Jmeter扩展---自定义取样器

简介 Jmeter已经内置了各种协议的取样器&#xff0c;已经能满足常用的性能压测需求。且在前面一章Jmeter扩展开发--自定义java取样器-CSDN博客中也有关于Java取样器的扩展开发&#xff0c;不过有时候我们期望能定制自己的取样器和界面。为此&#xff0c;需要对Jmeter做扩展&am…

界面控件DevExpress ASP.NET Scheduler - 助力快速交付个人信息管理系统(下)

DevExpress ASP. NET Scheduler组件能完全复制Microsoft Outlook Scheduler的样式和功能&#xff0c;具有日、周、月和时间轴视图&#xff0c;并包括内置的打印支持&#xff0c;因此用户可以在尽可能短的时间内交付全功能的个人信息管理系统。在上文中&#xff08;点击这里回顾…

Gemma中RoPE代码详细讲解

最近在看Gemma代码感觉比LLama的代码看的方便点&#xff0c; 看到RoPE代码跟常规的方式不太一样&#xff08;也不算常规&#xff0c;就是我理解的方式&#xff09;&#xff0c;特此记录一下。我的RoPE入门代码参考&#xff1a;Rotary Position Embedding (RoPE, 旋转式位置编码…

自然语言处理实验2 字符级RNN分类实验

实验2 字符级RNN分类实验 必做题&#xff1a; &#xff08;1&#xff09;数据准备&#xff1a;academy_titles.txt为“考硕考博”板块的帖子标题&#xff0c;job_titles.txt为“招聘信息”板块的帖子标题&#xff0c;将上述两个txt进行划分&#xff0c;其中训练集为70%&#xf…

服务器Debian 12.x中安装Jupyer并配置远程访问

服务器系统&#xff1a;Debian 12.x&#xff1b;IP地址&#xff1a;10.100.2.138 客户端&#xff1a;Windows 10;IP地址&#xff1a;10.100.2.38 利用ssh登录服务器&#xff1a; 1.安装python3 #apt install python3 2.安装pip #apt install python3-pip … 3.安装virtualen…

Unity Timeline学习笔记(3) - SignalTrack信号轨道和自定义带参数的Marker信号和轨道

信号轨道&#xff0c;顾名思义就是运行到某处发送一个信号。 普通用法 普通用法就是没有任何封装的&#xff0c;个人感觉特别难用&#xff0c;但是有必要理解一下工作原理。 添加信号 我们添加一个信号资源 生成后可以看到资源文件&#xff0c;这个是可以拖到SignalTrack上…

【Python数据结构与判断7/7】数据结构小结

目录 序言 整体回忆 定义方式 访问元素 访问单个元素 访问多个与元素 修改元素 添加元素 列表里添加元素 字典里添加元素 删除元素 in运算符 实战案例 总结 序言 今天将对前面学过的三种数据结构&#xff1a;元组&#xff08;tuple&#xff09;、列表&#xff08;…

微前端框架 qiankun 配置使用【基于 vue/react脚手架创建项目 】

qiankun官方文档&#xff1a;qiankun - qiankun 一、创建主应用&#xff1a; 这里以 vue 为主应用&#xff0c;vue版本&#xff1a;2.x // 全局安装vue脚手架 npm install -g vue/clivue create main-app 省略 vue 创建项目过程&#xff0c;若不会可以自行百度查阅教程 …

java垃圾回收-三色标记法

三色标记法 引言什么是三色标记法白色灰色黑色 三色标记过程三色标记带来的问题多标问题漏标问题 如何弥补漏标问题增量更新原始快照总结 引言 在CMS,G1这种并发的垃圾收集器收集对象时&#xff0c;假如一个对象A被GC线程标记为不可达对象&#xff0c;但是用户线程又把A对象做…

数字化经济的前沿:深入了解 Web3 的商业模式

随着区块链技术的迅速发展&#xff0c;Web3作为一种新型的互联网范式&#xff0c;正逐渐引起人们的关注。它不仅仅是一种技术革新&#xff0c;更是一种商业模式和价值观的转变。本文将深入探讨Web3的商业模式&#xff0c;以及它对数字化经济的影响。 1. 理解Web3的商业模式 We…

算法---滑动窗口练习-4(无重复字符的最长子串)

无重复字符的最长子串 1. 题目解析2. 讲解算法原理3. 编写代码 1. 题目解析 题目地址&#xff1a;点这里 2. 讲解算法原理 算法的主要思想是使用滑动窗口来维护一个不含重复字符的子串。定义两个指针 left 和 right 分别表示窗口的左边界和右边界。还定义了一个数组 hash 来记…

Apache Paimon 的 CDC Ingestion 概述

CDC Ingestion 1&#xff09;概述 Paimon支持schema evolution将数据插入到Paimon表中&#xff0c;添加的列将实时同步到Paimon表&#xff0c;并且无需重启同步作业。 目前支持的同步方式如下&#xff1a; MySQL Synchronizing Table: 将MySQL中的一个或多个表同步到一个Pa…