CSS 3

news2024/9/27 7:16:33

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.coloradmin.cn/o/1517281.html

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

相关文章

[数据集][目标检测]零售柜零食检测数据集VOC+YOLO格式5422张113类

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;5422 标注数量(xml文件个数)&#xff1a;5422 标注数量(txt文件个数)&#xff1a;5422 标注…

在vite(vue)项目中使用mockjs

在vite&#xff08;vue&#xff09;项目中使用mockjs 在开发环境使用 1、首先创建vite项目 yarn create vite选择vue&#xff0c;选择默认的js版本 2、进入项目文件夹中执行yarn安装依赖 yarn add axios mockjs vite-plugin-mock3、安装axios、mockjs及插件 yarn add axio…

适用于系统版本:CentOS 6/7/8的基线安全检测脚本

#!/bin/bash #适用于系统版本&#xff1a;CentOS 6/7/8 echo "----------------检测是否符合密码复杂度要求----------------" #把minlen&#xff08;密码最小长度&#xff09;设置为8-32位&#xff0c;把minclass&#xff08;至少包含小写字母、大写字母、数字、特殊…

Tensorflow2.笔记 - 单层感知机(单输出,多输出)Single Layer Perceptron

本笔记主要记录单层感知机的相关内容&#xff0c;包括单层单输出&#xff0c;和单层多输出。 import tensorflow as tf import numpy as nptf.__version__#单层单输出感知机&#xff0c;逻辑回归很类似&#xff0c;主要区别就是激活函数和损失函数不同 #单层感知机的激活函数通…

一键切割,激发无限创意:体验全新图片批量编辑器

在数字创意的时代&#xff0c;图片编辑成为了表达个性和创造力的关键。然而&#xff0c;传统的图片编辑工具常常让人望而生畏&#xff0c;复杂的操作和高门槛的技术要求使得许多人望而却步。现在&#xff0c;我们为您带来一款全新的图片批量编辑器&#xff0c;只需一键切割&…

【Algorithm】动态规划和递归问题:动态规划和递归有什么区别?如何比较递归解决方案和它的迭代版本?

【Algorithm】动态规划和递归问题:动态规划和递归有什么区别?如何比较递归解决方案和它的迭代版本? 1. 动态规划(Dynamic Programming,DP)和递归定义及优缺点1.1 递归 (Recursion)定义及优缺点1.2 动态规划 (Dynamic Programming)定义及优缺点2. 动态规划(DP)和递归的特…

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

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

蓝牙耳机链接电脑莫名奇妙关机问题(QQ浏览器)

蓝牙耳机连接电脑听歌的时候&#xff0c;如果听歌软件是暴风影音&#xff0c;或者其它播放器&#xff0c;蓝牙不会自动关机&#xff0c;但如果是QQ浏览器&#xff0c;蓝牙耳机经常莫名其妙的关机&#xff0c;时间间隔忽长忽短&#xff0c;没有规律&#xff0c;解决办法就是重启…

uniapp移动端 IOS系统下无法与webview通信

不知道有没有人遇到过这个问题 我的页面嵌套了一个webview&#xff08;文件位于项目的hybrif/html&#xff09;目录下 使用evalJS与webview进行通信 代码如下 在安卓里运行是没问题的&#xff0c;但在苹果手机上一直无法通信 连接真机&#xff0c;打印evalJS是个方法&#xf…

Spring boot创建第一个项目

作者简介&#xff1a; zoro-1&#xff0c;目前大二&#xff0c;正在学习Java&#xff0c;数据结构&#xff0c;spring等 作者主页&#xff1a; zoro-1的主页 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01;&#x1f496;&#x1f496; Spring boot创建第一个项目 sp…

idea Springboot 数码商城系统LayUI框架开发mysql数据库web结构java编程计算机网页

一、源码特点 springboot 数码商城系统是一套完善的完整信息系统&#xff0c;结合mvc框架和LayUI框架完成本系统springboot spring mybatis &#xff0c;对理解JSP java编程开发语言有帮助系统采用springboot框架&#xff08;MVC模式开发&#xff09;&#xff0c;系统具有完整…

CVE-2024-27199 JetBrains TeamCity 身份验证绕过漏洞2

漏洞简介 TeamCity Web 服务器中发现了第二个身份验证绕过漏洞。这种身份验证旁路允许在没有身份验证的情况下访问有限数量的经过身份验证的端点。未经身份验证的攻击者可以利用此漏洞修改服务器上有限数量的系统设置&#xff0c;并泄露服务器上有限数量的敏感信息。 项目官网…

KubeSphere 社区双周报|2024.02.29-03.14

KubeSphere 社区双周报主要整理展示新增的贡献者名单和证书、新增的讲师证书以及两周内提交过 commit 的贡献者&#xff0c;并对近期重要的 PR 进行解析&#xff0c;同时还包含了线上/线下活动和布道推广等一系列社区动态。 本次双周报涵盖时间为&#xff1a;2024.02.29-03.14…

uniapp微信小程序_自定义交费逻辑编写

一、首先看最终效果 先说下整体逻辑,选中状态为淡紫色,点击哪个金额,充值页面上就显示多少金额 二、代码 <view class"addMoney"><view class"addMoneyTittle">充值金额</view><view class"selfaddmoney" :class"{…

uniapp微信小程序_拍照从相册选择

userImg() {let that thisuni.chooseMedia({count: 1,mediaType: [image, video],sourceType: [album, camera],maxDuration: 30,camera: back,success(res) {console.log(res.tempFiles[0].tempFilePath)that.imagUrl res.tempFiles[0].tempFilePath}})}, 直接调用api即可,注…

Apache Paimon 的 CDC Ingestion 概述

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

【Jenkins】data stream error|Error cloning remote repo ‘origin‘ 错误解决【亲测有效】

错误构建日志 17:39:09 ERROR: Error cloning remote repo origin 17:39:09 hudson.plugins.git.GitException: Command "git fetch --tags --progress http://domain/xxx.git refs/heads/*:refs/remotes/origin/*" returned status code 128: 17:39:09 stdout: 17…

Spring揭秘:ClassPathScanningProvider接口应用场景及实现原理!

技术应用场景 ClassPathScanningCandidateComponentProvider是Spring框架中一个非常核心的类&#xff0c;它主要用于在类路径下扫描并发现带有特定注解的组件&#xff0c;支持诸如ComponentScan、Component、Service、Repository和Controller等注解的自动扫描和注册。 ClassP…

关于MySQL数据库2

目录 前言: 1.mysql中常用的数据类型: 1.1数值类型: 1.1.1INT: 1.1.2FLOAT 和 DOUBLE: 1.1.3DECIMAL (或 NUMERIC): 1.2日期和时间类型: 1.2.1DATE: 1.2.2TIME: 1.2.3DATETIME: 1.2.4TIMESTAMP: 1.2.5YEAR: 1.3字符串类型: 1.3.1CHAR: 1.3.1VARCHAR: 1.3.1TEXT:…

java kafka客户端何时设置的kafka消费者默认值

kafka为什么有些属性没有配置却能正常工作&#xff0c;那是因为kafka-clients对有些消费者设置了默认值&#xff0c;具体看下ConsumerConfig类的静态模块&#xff0c;具体如下所示&#xff1a; kafka为什么有些属性没有配置却能正常工作&#xff0c;那是因为kafka-clients对有…