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

半导体设备隔振必看:如何用天棚阻尼PID控制实现VC-C级振动抑制(含SIMULINK模型)

本文深入探讨了在半导体精密制造中,如何运用天棚阻尼PID控制算法实现VC-C级振动抑制。通过构建高保真单自由度仿真模型,详细解析了从算法原理、SIMULINK实现到参数整定的全链路方案,并针对谐波扰动提供了陷波滤波器设计方法,为工程师提供了从仿真到实践的完整主动隔振技术指南。

pz89012345的博客 537

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

从FinFET到NanoSheet:一文看懂TSMC制程技术的架构革命与性能飞跃

本文深入解析了TSMC从FinFET到NanoSheet的制程技术架构革命。FinFET通过三维立体结构解决了短沟道效应,而NanoSheet采用环绕栅极设计,实现了更强的静电控制与设计灵活性,结合EUV光刻技术,共同推动了芯片性能与能效的飞跃,为下一代AI与高性能计算奠定基石。

i3j4k5的博客 288

css

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

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

Cocos2d-x手游逆向实战:Frida高阶Hook与动态解密技术

Cocos2d-x作为主流跨平台游戏引擎,其混合架构(C++核心+JNI桥接+Lua/JS脚本)和强加固策略(符号剥离、anti-frida、so加壳)使传统逆向方法失效。本文围绕‘无符号定位’‘C++函数硬编码地址识别’‘Lua层AST级劫持’‘OpenGL内存回溯解密’四大关键技术展开,深入解析如何在真实上线项目中稳定hook被strip的libcocos2d.so关键函数、绕过反调试心跳检测、从glTexImage2D参数逆向追踪明文资源,并结合熵值扫描实现零先验知识的内存明文发现。面向已掌握Frid

weixin_30345577的博客 672

物料主数据管理难在哪?基于AI算法的数据清洗工具了解一下

企企通打造的一套以AI模型和算法为核心的产品及服务,可针对各类企业的不同主数据痛点难点,提供多种解决方案,能够快速完成物料主数据清洗、识别、匹配、梳理,满足一物一码、分类梳理、一品多商、多维度比价、精准寻源选品、建立标准物料库、供应商及客户主数据清洗等业务场景需求。随着AI技术的快速发展,智能算法在数据清洗领域的应用越来越广泛,越来越多的数据清洗工作已经开始交由智能算法完成,通过自动化的方式处理大量数据,识别和纠正错误,填补缺失值,检测异常值,以及执行其他数据预处理任务,并提高效率并减少人为错误。

QQT_qqt的博客 1364

HTML和CSS入门

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

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

AS7262六通道可见光传感器:从光谱原理到物联网色彩检测实战

光谱检测是嵌入式感知领域的关键技术,其核心原理是通过特定波长的滤光片分离光线并转换为电信号,从而实现对环境光或物体反射光的成分分析。这项技术的价值在于将复杂的光学分析简化为可编程读取的数字信号,极大降低了色彩检测在物联网和智能设备中的应用门槛。在智能农业、工业分拣、环境监测等场景中,精确的光谱数据能够驱动自动化决策,例如评估植物光照条件或识别物料颜色。本文以Adafruit AS7262传感器为例,深入解析其基于硅干涉滤光片的六通道设计,并通过Arduino与Python实战,演示如何快速构建从数据采集到可

weixin_28738173的博客 595

ASM学习-1使用raw

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

ciliting2867的博客 254

12.工具高级参数CogCalibNPointToNPointTool

CogCalibNPointToNPointTool是一种多点2D坐标校正工具,用于将图像像素坐标转换为物理世界坐标。该工具通过两组点(图像坐标点和物理坐标点)计算最佳转换关系,并将结果保存供后续使用。操作步骤包括获取图像、添加坐标点对、计算转换参数。校正结果会显示平移、缩放、旋转等参数及RMS误差值,较大的误差可能表明点位置不准确或自由度不足。该工具广泛应用于机器视觉领域,通过9点标定等案例可验证坐标转换的准确性并优化参数设置。

203

Backtrader官方中文文档:第四章Concepts基本概念

官方Concepts章节:https://backtrader.com/docu/concepts/

汇渊科技 2602

CSS 杂碎

什么是精灵图?

MissXu666的博客 295

华为OD机试真题2025双机位A卷 Java&Go 实现【采购订单】

在一个采购系统中,采购申请(PR)需要经过审批后才能生成采购订单(PO)。每个PR包含商品的单价(假设相同商品的单价一定是一样的)及数量信息。系统要求对商品进行分类处理:单价高于100元的商品需要单独处理,单价低于或等于100元的相同商品可以合并到同一采购订单PO中。针对单价低于100的小额订单,如果量大可以打折购买。

MISAYAONE的博客 1257

拆解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

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

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

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

2401_84619530的博客 1068

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

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

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

weixin_33889665的博客 413

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

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、付费专栏及课程。

余额充值