CSS学习(三)—— device-loop

Selenium、Appium、Cypress三大自动化测试框架选型实战指南 自动化测试是软件工程中保障质量、提升效率的关键实践,其核心原理是通过脚本模拟用户操作,对软件功能进行验证。从技术价值看,它能实现快速回归、减少人工成本,并支持持续集成。在应用场景上,根据测试对象的不同,技术选型差异显著:针对桌面Web应用,需考虑浏览器兼容性与团队技术栈;针对移动端应用,则需兼顾iOS与Android平台。本文聚焦于Selenium、Appium和Cypress这三大主流框架,深入剖析其各自定位、架构差异与适用场景,并结合项目需求、团队技能与维护成本,提供清晰的选型决策路径与混合使用策略,帮 阅读详情

学习地址:
https://github.com/hakimel/css/tree/master/device-loop
通过案例理解position:relative和position:absolute: https://segmentfault.com/a/1190000006924181#articleHeader3

这里写图片描述


  1. 不管是块级元素还是行内元素,应用了position:absolute之后,display为block:可以设置width和height, 没有设置的话,width默认为auto。设置成 position:absolute;脱离文档流,所以是“不占位”的。
  2. 设置了position:absolute;如果没有设置TRBL( top,left,bottom和left),则默认浮动在父元素的content-box。紧接着,元素脱离文档流,由于没有设置width,所以width变成了auto
  3. 同级的元素,如果都设置了 position:absolute, 则后面的 元素将会 覆盖 前面的元素,因为默认 代码越靠后的 z-index 越大
  4. 不管是块级元素display:block还是内联元素display:inline, 应用position:absolute并且不设置TRBL,它都会默认在父级元素的content-box区浮动。原来的起点位置也是应用绝对定位后的起点位置,只不过如果应用了position:absolute的内联元素左边也有内联元素的话,它的起点位置会变得更靠前,直到紧挨左边内联元素的边界。
  5. 父元素 position: relative或absolute, 此时 子元素 position:absolute;left:0;top:0; 子元素寻找 距离最近的一个使用了position:relative/absolute的 父元素(如果找不到,就使用 body的)

代码如下:
index.html :

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>device-loop</title>
        <meta name="description" content="">
        <meta name="author" content="Suwei">

        <link rel="stylesheet" href="style.css" media="screen" type="text/css" />
    </head>
    <body>
        <!--通过data-animation-step来切换-->
        <div class="animation" data-animation-step="1">
            <div class="device">
                <div class="phone-home-button"></div>
                <div class="tablet-home-button"></div>
                <div class="screen-stand">
                    <div class="leg"></div>
                    <div class="foot"></div>
                </div>
                <div class="display">
                    <div class="slide1"><div>Works on <em>desktops</em></div></div>
                    <div class="slide2"><div>Works on <em>tablets</em></div></div>
                    <div class="slide3"><div>Works on <em>phones</em></div></div>
                </div>
            </div>
        </div>
        <script>
            var duration = 7000, steps = 3, step = 1;
            setInterval( function() {
                document.querySelector( '.animation' ).setAttribute( 'data-animation-step'
                                   , step = ++step > steps ? 1 : step );
            }, duration / steps );
        </script>
    </body>
</html>

style.css

html, body {
    margin: 10px;
    font-family: helvetica sans-serif; 
}
.animation {
  position: relative;
  display: inline-block;
  width: 460px;
  height: 377px;
  margin: 0 auto;
}
.animation .device {
  position: absolute;   
  width: 100%;
  height: 100%;
  background: #111;
  -webkit-transition: all 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  -moz-transition: all 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  -ms-transition: all 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  transition: all 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.animation .device .display {
  position: relative;   
  width: 100%;
  height: 100%;
  /*隐藏溢出*/
  overflow: hidden;
}
.animation .device .display div {
  position: absolute;   
  width: 100%;
  height: 100%;
  /*这里初始设置为left:100%; 之后切换的时候变成 left: -100%; 就会有从右到左过渡的效果*/
  left: 100%;
  -webkit-transition: all 0.6s ease;
  -moz-transition: all 0.6s ease;
  -ms-transition: all 0.6s ease;
  transition: all 0.6s ease;
}
.animation .device .display div div {
  position: absolute;
  width: 100%;
  color: #fff;
  top: 50%;
  /*文字还是要显示的*/
  left: 0;
  margin-top: -14px;
  /*1.1em表示当前字体的 1.1倍大小,例如当前字体如果为10px的话,1.1em就是 11px*/
  font-size: 1.1em;
  text-align: center;
}
.animation .device .display div div em {
  font-weight: bold; 
}

.animation[data-animation-step="1"] .device {
     width: 70%;
     height: 60%;
     padding: 24px;
     border-radius: 10px;
}
/*电视的支撑脚架*/
.animation[data-animation-step="1"] .device .screen-stand {
  opacity: 1;
  position: absolute;
  width: 100%;
  top: 100%;
}
.animation[data-animation-step="1"] .device .screen-stand .leg {
        position: absolute;
        width: 12px;
        height: 16px;
        left: 44%;
        margin-left: -6px;
        background: #111;
}
.animation[data-animation-step="1"] .device .screen-stand .foot {
        position: absolute;
        width: 120px;
        height: 4px;
        top: 15px;
        left: 27.5%;
        border-top-left-radius: 2px;
        border-top-right-radius: 2px;
        background: #111;   
}
.animation[data-animation-step="1"] .device .slide1 {
    /*移动*/
    left: 0%;
    background: #34495e;
}
.animation[data-animation-step="1"] .device .slide2 {
}
.animation[data-animation-step="1"] .device .slide3{
}





.animation[data-animation-step="2"] .device {
    width: 45%;
    height: 72%;
    padding: 24px;
    border-radius: 10px; 
}
.animation[data-animation-step="2"] .device .tablet-home-button {
    opacity: 1;
    position: absolute;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #444;
    left: 48%;
    bottom: 7px;
}
.animation[data-animation-step="2"] .device .slide1 {
    left: -100%;
}
.animation[data-animation-step="2"] .device .slide2 {
    left: 0%;
    background: #16a085;
}
.animation[data-animation-step="2"] .device .slide3{
}


.animation[data-animation-step="3"] .device {
    width: 54%;
    height: 38%;
    padding: 10px 36px;
    border-radius: 6px; }
.animation[data-animation-step="3"] .device .phone-home-button {
   opacity: 1;
   position: absolute;
   width: 16px;
   height: 16px;
   border-radius: 50%;
   background: #444;
   z-index: 1;
   right: 10px;
   top: 45%;
}
.animation[data-animation-step="3"] .device .slide1 {
    left: -100%;
}
.animation[data-animation-step="3"] .device .slide2 {
    left: -100%;
}
.animation[data-animation-step="3"] .device .slide3{
    left: 0%;
    background: #3498db;
}

226款HTML5小游戏源码适配移动端:3个关键CSS与JS优化点 本文详细解析了226款HTML5小游戏源码适配移动端的3个关键优化点:CSS视口配置、触摸事件优化和Flex/Grid布局重构。通过标准化meta标签、动态DPI适配和横竖屏锁定策略,解决移动端布局错乱问题;优化触摸事件与虚拟摇杆实现,提升交互体验;采用现代布局方案和性能优化技巧,让经典HTML5游戏在移动设备上流畅运行。 阅读详情

相关推荐

Gradio在Ubuntu上快速部署机器学习Web应用

Gradio是一种面向机器学习模型快速交互化展示的轻量级Python框架,其核心原理是将模型输入输出声明式映射为Web组件,绕过传统Web开发中的前端渲染、API路由和状态管理等复杂环节。技术价值在于显著降低MLOps初期交付门槛,实现‘写完predict就能分享’的极简推理服务。典型应用场景包括算法效果内部演示、跨团队模型验证、本地化AI工具原型构建等。本文聚焦Gradio与Ubuntu原生环境的深度适配,覆盖CUDA驱动协同、systemd服务托管、ufw防火墙配置及venv环境隔离等关键实践要点。

weixin_33719619的博客 486

less循环生成css

1.普通遍历 @colorArr: { white: white; primary: #35a0e8; info: #909399; success: #67C23A; danger: #F56C6C } each(@colorArr, { .text-@{key} { color: @value; } .bg-@{key} { background-color: @value; } }); 生成的css 2.递归生成 @positionArr:

qq_43585229的博客 898

HTML/CSS/JS 示例源码:DOM、布局与响应式实战

HTML 负责结构、CSS 负责样式、JavaScript 负责行为,三者组合成可运行的前端示例源码。浏览器解析文档后形成 DOM 树,事件冒泡让父容器可以统一处理子元素点击,表单约束属性与脚本校验配合完成数据收集;Flex/Grid 解决一维与二维布局,媒体查询和 viewport 支撑响应式布局,Canvas 则需按 devicePixelRatio 缩放位图避免高清屏发虚。这些基础能力的技术价值在于可对照、可复制、可二次开发,常见于前端入门练习、后台管理页快速搭布局、活动页资源路径与样式覆盖排查、移动

weixin_33862993的博客 457

CSS语言的循环实现

CSS自定义属性(也称为CSS变量)为动态样式提供了更大的灵活性。我们可以通过JavaScript来更新这些变量,从而实现动态效果。

2501_90494537的博客 394

MAST-ML实战指南:材料结构到性能预测的本地化机器学习工作流

材料机器学习(Materials ML)是将晶体结构等物理输入映射至带隙、形成能等关键性能指标的技术范式。其核心在于特征工程的物理可解释性、模型验证的鲁棒性,以及与DFT/实验数据的无缝衔接。MAST-ML作为面向材料科学的生产级工具包,内置CIF解析、SOAP/ACSF描述符生成、扰动鲁棒性验证和不确定性量化等能力,显著降低从结构文件到可部署代理模型的工程门槛。它不依赖云端服务,支持本地conda环境部署与sklearn兼容流水线,特别适用于钙钛矿等新型功能材料的快速筛选与机理分析。

weixin_34099526的博客 234

物理信息神经网络(PINNs)在交通运输领域的应用

物理信息神经网络(PINNs)在交通运输领域的应用研究结合了数据驱动与物理模型约束,通过嵌入交通流守恒定律等物理信息,显著提升了交通状态估计与预测的精度。该技术仅需少量观测数据(流量、速度、密度等),即可实现高精度建模,尤其适用于数据稀疏场景。研究重点包括:交通状态估计与预测、参数辨识、交通控制优化等领域,同时面临计算成本高、物理模型依赖性等挑战。未来需解决大规模异构数据处理问题,以进一步推动智能交通系统发展。

qq_49609070的博客 943

css轮播

css部分 .loop-wrap { position: relative; width: 500px; height: 300px; margin: 100px auto; overflow: hidden; } .loop-images-container{ position: absolute; left: 0; top: 0;

tt010175的博客 662

从零搭建UVM验证环境:新手入门实践指南

在数字芯片验证领域,SystemVerilog和UVM(Universal Verification Methodology)是构建高效验证环境的核心技术。其原理基于面向对象编程和事务级建模,通过组件化架构实现验证的复用性和自动化。这一方法学的技术价值在于显著提升验证效率与质量,广泛应用于处理器、通信芯片等复杂设计的验证场景。本文聚焦于UVM验证环境的搭建实践,通过一个加法器实例,详细解析了uvm_driver、uvm_monitor、uvm_sequence等关键组件的协同工作机制,并提供了基于Quest

weixin_30015371的博客 445

css

&lt;input name=“文本框名称” type=“text” value=“初始值” size=“显示字符数” maxlength=“最多容纳字符数”&gt; 密码框 &lt;input name=“文本框名称” type=“password” value=“初始值” size=“显示字符数” maxlength=“最多容纳字符数”&gt; 多行文本框 &lt;textarea n...

网站开发初中级代码参考-转载 148

【知识图谱】一文看懂知识图谱的搭建实践与科普教程(5万字完结篇)

所有可能的实体对:(“Mate40”,“华为”), (“Mate40”,“手机”), (“华为”,“手机”)。送入关系模型分类,预期输出 (“Mate40”,“华为”): 品牌, (“Mate40”,“手机”): 属于类别, (“华为”,“手机”): 无关系。,定义了图谱中概念和关系的类型层次结构,相当于知识图谱的“纲领”和“schema”。训练完成后,当模型看到新的句子,比如“苹果的MacBook笔记本性能强大”,识别出实体“苹果”(品牌)和“MacBook”(产品)后,就能正确输出关系“品牌”。

weixin_41645791的博客 2611

Vins-Fusion 外参camera-imu 标定

Vins-Fusion是一种基于优化的多传感器状态估计器,一大特色是支持实时camera-imu外参校准(相机和IMU之间的旋转)。Vins-Fusion 外参camera-imu校准是利用两帧间计算相机位姿和imu预积分得到位姿,构建最小二乘问题,并通过SVD求解camera-imu外参旋转矩阵。

u010196944的博客 2490

HTML和CSS入门

HTML和CSS入门 1.插入音频和视频 embed是HTML5新增的标签 2.bgsound标签简介在网页中可以为某个网页设置背景音乐,使用的是bgsound标签。 loop属性说明: loop="2"表示重复2次,loop=“infinite"表示无限次循环播放,也可以使用loop=”-1"表示无限次循环播放。设置网页背景音乐时常用的方法除了使用bgsound标签,还有使用embed标签和o...

请关注我,不定时分享个人在大厂嵌入式开发工作经验 409

2025华为od机试真题B卷【版本管理】JavaScript实现

在 软件版本管理中,版本号由点分割的数字组成,例如 1.2.3 和 2.8。现在,你需要编写一个函数,计算两个版本号之间的可用版本号个数。这里的可用版本号指的是所有满足 version1<x<version2的版本号x的个数。若 version1 >=version2 返回0.,

MISAYAONE的博客 254

ASM学习-1使用raw

1.检查css服务是否启动,如果没有,将其启动 root@single ~]# localconfig add/etc/oracle does not exist. Creating it now.Successfully a...

ciliting2867的博客 254

Yolov5自定义图片训练测试及模型调优(详细过程)

Yolov5自定义数据训练及测试1. 图像数据获取、标注2. 数据集划分及准备3. 配置训练参数,准备训练:3.1 修改data/训练配置xxx.yaml文件:3.2 修改models模型配置xxx.yaml文件4. 开始训练5. 测试训练后的模型: 1. 图像数据获取、标注 如果自定义训练自己的数据集,首先需要数据标注,至于数据来源可以是下载现有的开发数据集、拍照、爬虫等等。 如果是拍照、爬虫等获取的数据图片,需要进行数据标注,这个过程可以使用工具来做,但也需要一些手动操作 。。并且图片越多越好,如果

HowieXue 薛永浩的博客 10万+

innovus:NRDB-2276 special net route layer与NanoRouteMode route layer冲突问题解决方法

NanoRouteMode中设置绕线层次2-6,但是被动到的special net有8-11的preferred route layer,这个层次可能是create_route_type+set_ccopt_property -net_type 定义的。二者绕线层次范围有冲突,导致在调整过这条net后再绕线就会提示失败。然后再下route_design 等route命令去绕别的net。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?

m0_61544122的博客 1099

CSS 杂碎

什么是精灵图?

MissXu666的博客 295

Python爬虫博客:爬取碳排放交易数据——使用最新技术的完整实现

通过上述方法,我们可以构建一个高效的爬虫,爬取碳排放交易市场的数据并进行分析。这个项目不仅展示了如何处理静态和动态网页,还提供了如何存储数据、分析数据和可视化结果的技巧。随着爬虫技术的不断进步,我们可以进一步提升爬取效率和数据分析能力。如果你希望更深入了解如何进行数据挖掘和机器学习分析,可以尝试将碳排放数据与其他经济数据结合,利用机器学习模型进行趋势预测或决策支持。

2201_76125261的博客 351

拆解orb的WebGPU渲染器:adapter、device、pipeline与rAF循环的完整流程

本文带你拆解 **orb** —— 一个基于 React 的实时 WebGPU 液态玻璃球编辑器 —— 的核心渲染器。整条渲染链路集中在 [src/orb-renderer.ts](https://link.gitcode.com/i/1ee833bc1513532ef9d9cfd84462e341) 一个文件里(仅约 170 行),我们按真实启动顺序,从 WebGPU adapter 适配、de

gitblog_00128的博客 406

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

2024年vuex从入门到出门_mapgettters([‘sidebar‘, ‘device‘]),网易的朋友给我这份339页的前端面经

中年危机是真实存在的,即便有技术傍身,还是难免对自己的生存能力产生质疑和焦虑,这些年职业发展,一直在寻求消除焦虑的依靠。技术要深入到什么程度?做久了技术总要转型管理?我能做什么,我想做什么?一技之长,就是深耕你的专业技能,你的专业技术。(重点)独立做事,当你的一技之长达到一定深度的时候,需要开始思考如何独立做事。(创业)拥有事业,选择一份使命,带领团队实现它。(创业)一技之长分五个层次栈内技术 - 是指你的前端专业领域技术栈外技术 - 是指栈内技术的上下游,领域外的相关专业知识。

2401_84619530的博客 1068

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

原生HTML/CSS/JS打造浪漫七夕表白与婚礼邀请函网页全攻略

在Web开发领域,HTML、CSS和JavaScript是构建一切网页应用的基石,它们分别负责结构、样式与交互,共同构成了现代网页的视觉与功能核心。理解这三者的协同工作原理,是前端开发者从入门到精通的必经之路。其技术价值在于,通过掌握这些原生技术,开发者能够脱离框架限制,实现极致的性能优化与完全的设计自由,从而创建出加载迅速、兼容性强的轻量级应用。这一技能在需要快速传播、强调第一印象和情感表达的场景中尤为重要,例如活动宣传、个人作品展示以及节日祝福页面。本文将聚焦于一个具体且充满温情的应用场景——制作专属的

weixin_33889665的博客 413

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

1.前端入门:HTML+CSS

1.box-shadow: h-shadow v-shadow blur spread color inset; h-shadow 必需。水平阴影的位置。允许负值。 v-shadow 必需。垂直阴影的位置。允许负值。 blur 可选。模糊距离。 spread 可选。阴影的尺寸。 color 可选。阴影的颜色。请参阅 CSS 颜色值。 inset 可选。将外部阴影 (outset) 改为内部阴影。 ......

zxz86的博客 367

Metro-UI-CSS 的 DOM 模块实战指南:基于 @olton/dom 的 jQuery 风格 DOM 操作库

本篇技术指南围绕 [source/dom/README.md](https://link.gitcode.com/i/f15a50aa71bc3b3d43023bbdd3b28eeb) 展开,完整讲解 Metro-UI-CSS 内置 DOM 操作层 `@olton/dom`(对象名 `Dom`)的构造方式、事件系统、Ajax、动画、遍历与工具方法等全部能力。读完本文,你将掌握一套与 jQuery

gitblog_00256的博客 303

HTML5 + CSS3 + 移动Web 总结笔记(0基础)

名词标题</dt><dd>名词解释内容</dd><dt>另一个名词另一个解释

yoakino的博客 170

HTML Anything motion-frames 动效帧模板实战:用纯 CSS 打造可循环的 Hero 视频帧

`motion-frames`(动效英雄帧 / Motion Frames)是 HTML Anything 内置的 75 个技能模板之一,属于 `frame` 表面下的一款通用动效设计帧:它用一个自带循环 CSS 动效的 HTML 单帧作为视频片头或落地页大图,组合了旋转文字环、抽象地球仪、计时器与浮动视差标签四大视觉元素。读完本文,你将掌握该模板的意图与布局规范、SKILL 元数据驱动的模板注册

gitblog_00942的博客 317

BGE-M3全解:稠密/稀疏/多元向量三合一检索的多语言嵌入模型,长文8192 tokens

BGE-M3 是 BAAI 开源的多语言嵌入模型,一个模型同时产出稠密向量、稀疏权重、多元向量(ColBERT)三类检索表示,支持 100 种以上语言,可处理最长 8192 个 token 的文档。它把跨语言检索、RAG 混合检索、长文档召回三件事装进了同一个模型,是目前开源检索层里综合能力最强的选择之一。 ## 它到底是什么:一个模型干三种检索的活 定位一句话:BGE-M3 是"三合一"的文

gitblog_00385的博客 879
上一篇: CSS学习(二)—— cloudy-spiral
下一篇: CSS学习(四)—— transition, animation, transform
why_su
博客等级 码龄10年 86粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值