Css切换不同窗口

server/2024/10/21 7:34:57/

代码

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>Title</title></head><style>css">/*label {*//*	display: block;*//*}*/* {padding: 0;margin: 0;}body {height: 100vh;background: gray;}.container {width: 650px;height: 500px;margin: 150px auto;display: flex;justify-content: space-between;align-items: center;/*设置视距*/perspective: 1500px;}input {/*取消按钮*/display: none;}.container .tab_body {width: 500px;height: 105%;position: relative;/*开启子元素的3d效果*/transform-style: preserve-3d;display: flex;justify-content: center;text-align: center;/*transform: rotateY(48deg) rotateX(-20deg);*/transition: transform 2s ease;}.labels {display: flex;flex-direction: column;justify-content: space-between;height: 500px;}.labels label {width: 100px;height: 100px;display: block;text-align: center;cursor: pointer;line-height: 100px;}.container .tab_body .tab_content {width: 500px;height: 78%;background: yellowgreen; /*背景颜色的抵挡解决了文字的重叠*/position: absolute;display: flex;flex-direction: column;justify-content: center;align-items: center;}.container .tab_body .tab_content:nth-child(1) {transform: translateY(-205px) rotateX(90deg);background: aquamarine;}.container .tab_body .tab_content:nth-child(2) {transform: translateZ(205px);background: darkred;}.container .tab_body .tab_content:nth-child(3) {transform: translateY(205px) rotateX(-90deg);background: darkslategrey;}.container .tab_body .tab_content:nth-child(4) {transform: translateZ(-205px) rotateX(180deg);background: khaki;}#btn1:checked ~ .tab_body {transform: rotateX(-90deg);}#btn2:checked ~ .tab_body {transform: rotateX(0deg);}#btn3:checked ~ .tab_body {transform: rotateX(90deg);}#btn4:checked ~ .tab_body {transform: rotateX(180deg);}.container .labels label:nth-child(1) {background: aquamarine;}.container .labels label:nth-child(2) {background: darkred;}.container .labels label:nth-child(3) {background: darkslategrey;}.container .labels label:nth-child(4) {background: khaki;}label:hover {opacity: 0.6;}</style><body><div class="container"><input type="radio" name="tabPage" id="btn1" checked><input type="radio" name="tabPage" id="btn2"><input type="radio" name="tabPage" id="btn3"><input type="radio" name="tabPage" id="btn4"><div class="tab_body"><div class="tab_content"></div><div class="tab_content"></div><div class="tab_content">rap</div><div class="tab_content">篮球</div></div><div class="labels"><!--label可以扩大单选框的点击范围--><label for="btn1"></label><label for="btn2"></label><label for="btn3">rap</label><label for="btn4">篮球</label></div></div></body>
</html>

需要注意的细节

  1. tab_content移动的距离是父元素tab_body宽度的一半,先移动再旋转
  2. perspective景深属性,需要添加在父元素中
  3. transition动画元素作用到tab_body上即可

最终效果


http://www.ppmy.cn/server/7690.html

相关文章

mysql-MVCC

MySQL-InnoDB-MVCC多版本并发控制 1.基本概念&#xff1a; MVCC&#xff1a;应对高并发事务, MVCC比单纯的加锁更高效; 多版本控制&#xff0c;是一种提高并发的技术&#xff0c;最早的数据库系统&#xff0c;只有读和读之间可以并发&#xff0c;读和写&#xff0c;写和读&am…

李宏毅2022机器学习/深度学习 个人笔记(2)

本系列用于推导、记录该系列视频中本人不熟悉、或认为有价值的知识点 本篇记录第一讲&#xff08;选修&#xff09;&#xff1a;神奇宝贝分类&#xff08;续&#xff09; 讲解如何用高斯概率分布假设来推导类似于逻辑斯蒂分布的表达式 如图&#xff0c;boundary变为直线&…

UML绘制

processon官网 https://www.processon.com/template_create 官方学习地址 https://plantuml.com/zh/class-diagram 在Android studio 中自动生成类图 https://blog.csdn.net/zyfzhangyafei/article/details/126636358 plantUML 在线编辑 https://www.plantuml.com/plantuml/um…

flask 请求对象

客户端网页的数据作为全局请求对象发送到服务器。要处理请求数据&#xff0c;请求对象应该从Flask模块导入。 form 是包含表单参数及其值的键值对的字典对象。 args 解析问号(?)后的 url 部分查询字符串的内容。 cookies 保存 cookie 名称和值的字典对象。 file 与上传文件有关…

数组的删除与插入优化思路

数据结构&#xff1a;线性表、非线性表 线性表&#xff1a; 数组&#xff0c;链表、队列、栈等。 线性表就是数据排成像一条线一样的结构&#xff0c;每个线性表上的数据最多只有前和后两个方向。 非线性表&#xff1a; 二叉树、堆、图等。 在非线性表中&#xff0c;数据之间并…

ElasticSearchDSL

ElasticSearchDSL DSL Query的分类DSL Query基本语法全文检索查询&#xff1a;精确查询地理查询复合查询 elasticsearch中的相关性打分算法是什么&#xff1f;Function Score Query复合查询 Boolean Query排序分页 DSL Query的分类 查询所有&#xff1a;查询出所有数据&#x…

python网页篇

爬取网页动态数据通常涉及到JavaScript渲染的内容&#xff0c;这类数据并不是在原始HTML文档中直接提供的&#xff0c;而是通过AJAX请求、WebSocket通信或者其他客户端渲染技术生成的。以下是几种常见的处理方法&#xff1a; 方法1&#xff1a;使用带有JavaScript渲染功能的库 …

【ETOJ P1023】同鱼系 题解(数学+取余)

题目描述 给定一个大小为 n n n 的数组 a a a 和一个整数 k k k。 你可以执行以下操作任意次&#xff08;0次也行&#xff09;: 选择一个下标 i i i 满足 1 ≤ i ≤ n − k 1 \leq i \leq n-k 1≤i≤n−k&#xff0c;然后交换 a i a_i ai​ 和 a i k a_{ik} aik​。…