CSS特效集锦:视觉魔法的碰撞与融合(二)
引言
CSS有他难以做到的事情,我们帮他用lottie解决
CSS有他可以做到的事情,我们用我们的头脑帮他解决
本文实现的CSS效果一览
标题吸顶
手写箭头
文字背景
圆形天坑
按钮波澜
动态方形
加载骨架
多行省略
标题吸顶

.sticky {
z-index: 100;
width: 500px;
height: 20px;
background: red;
position:sticky;
position: -webkit-sticky;
top:0px;
}
<div class="sticky" style="margin:30px;">
</div>
手写箭头
先画一个div,border设置成箭头的颜色,同时呢,把div左边和下边的border变透明
再然后呢,把这个div右转45度:transform:rotate(45deg),这样就可以得到右边的箭头了

.arrow {
width: 50px;
height: 50px;
border:10px solid blue;
border-left-color: transparent;
border-bottom-color: transparent;
transform: rotate(45deg);
}
<div class="arrow" style="margin:30px"></div>
文字背景
A:CSS文字背景怎么实现?
B:我知道我知道!text-background
A: 你的猜测非常合理!但如果我们真有这个CSS属性就好了
body {
background: #fff;
}
.text-bg {
width: 800px;
font-size: 70px;
font-weight: bold;
background: url(../demoImage/sea.jpg);
background-clip: text;
-webkit-background-clip: text;
color: transparent;
-webkit-text-fill-color: transparent;
}
<div class="text-bg" style="margin:30px">
<p class="text">我叫彭湖湾,请叫我胖湾</p>
</div>

圆形天坑

.hole-wrapper {
overflow: hidden;
position: relative;
width: 300px;
height: 70px;
background: white;
}
.hole {
border-radius: 50%;
background: blue;
position: absolute;
bottom:0;
left:50%;
margin-left: -200px;
width: 400px;
height:400px;
}
<div class="hole-wrapper" style="margin:30px">
<div class="hole">
</div>
</div>


按钮波澜
波澜的轮廓是一个不断扩大的圆,我们联想到可以通过变化的transform:scale()控制大小的变化
圆随着扩大越来颜色越淡直到消失,我们可以给他设置白色background,并且通过变化的opacity控制透明度的变化
通过animation来控制每个阶段,圆的具体的大小和颜色浓淡变化

@keyframes wave{
20% {
transform: scale(0.2);
opacity: 0.8;
}
40% {
transform: scale(0.4);
opacity: 0.6;
}
60% {
transform: scale(0.6);
opacity: 0.4;
}
80% {
transform: scale(0.8);
opacity: 0.2;
}
100% {
transform: scale(1);
opacity: 0;
}
}
.button {
overflow: hidden;
position: relative;
border:2px solid #fff;
background:#2894FF;
border-radius: 10px;
width: 200px;
height: 50px;
}
.wave {
border-radius: 50%;
position: absolute;
top:50%;
margin-top: -200px;
left: 50%;
margin-left: -200px;
background: #fff;
width: 400px;
height: 400px;
transform: scale(0.01);
opacity: 0;
}
/* 悬浮替代点击 */
.button:hover .wave{
animation: wave linear 1s;
}
<div class="button" style="margin:30px">
<div class="wave"></div>
</div>
动态方形
A:你实现一个高度和宽度一样的正方形!
B:太简单了!不要耍我!我会width:20px;height:20px;
A:但是,我的要求是要随外部div的长度变化,而变化的正方形
B:还是太简单了,我会width:20%;height:20% 。。。。。(被打断)
A:但是!这个外部包裹的div可能是一个变化的长方形!而你还是要在里面实现一个宽高成比例变化的正方形!
B:喵喵喵???

/* 不知道是哪个大猪蹄子想出来的运行不了的方法 */
div {
width: 20%;
height:calc(width)
}
我们的思路
.square-wrapper {
display: flex;
justify-content: center;
align-items: center;
border: 2px solid blue;
width: 300px;
height: 200px;
}
.square-wrapper:hover {
transition:width 2s,height 2s;
width: 400px;
height: 300px;
}
.square {
background: red;
width: 25%;
padding-top:25%;
}
<div class="square-wrapper" style="margin:30px">
<div class="square"></div>
</div>
加载条


.content {
width: 200px;
height: 20px;
background:red ;
}
.content:empty{
background: grey
}
<div class="skeleton" style="margin:30px">
<div class="content">我有文本内容呢</div>
<div class="content"></div>
</div>
怎么让加载条动起来
单/多行省略

<div style='width:400px;
height:70px;
border:1px solid red;'>
<p style='display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow:hidden;'>
这是一些文本这是一些文本这是一些文本这是一些文本这是一些文本
这是一些文本这是一些文本这是一些文本这是一些文本这是一些文本
</p>
</div>
【CSS/JS】如何实现单行/多行文本溢出的省略(...)--老司机绕过坑道的正确姿势
总结和感悟
个人介绍
大家好! 我叫彭湖湾,CSS职业选手,18年中韩前端大师邀请赛垫底最后一名,JavaScript排位赛中国区广东分区前1600强,我擅长使用的英雄是React和Vue,快速响应从而给短时间内敌人造成大量伤害! 我喜欢使用的武器是Node.js,但是武艺不精经常误伤自己,我的口号是:“我是IE守护者,痛击我的队友,保护我的敌人! ” 9102年9月1日,我将在知乎前端职业联赛ZPL (Zhihu Pro League)上送上我的精彩表现,敬请期待!
CSS特效集锦:视觉魔法的碰撞与融合(二)的更多相关文章
- CSS动效集锦,视觉魔法的碰撞与融合(二)
引言 长久以来,我认识到.CSS,是存在极限的.正如曾经替你扛下一切的那个男人,也总有他眼含热泪地拼上一切,却也无法帮你做到的事情,他只能困窘地让你看到他的无能为力,怅然若失. 然后和曾经他成长的时代 ...
- CSS动效集锦,视觉魔法的碰撞与融合(一)
前言 在本文中我讲述了7种CSS的动效,它们也许看起来并不惊艳,但是我认为却足够传达本文的理念:编写一些特殊的CSS样式的时候需要不拘于常理,要用特殊的认识角度看待标签和样式属性,从而用「绕个弯」的方 ...
- CSS动效集锦,视觉魔法的碰撞与融合(三)
本文讲述的原理和相关demo 扇形DIV的使用——实现雷达扫描图 DIV环形布局—实现loading圈 动画的向量合成—实现抛物线动画 无限滚动动画—实现跑马灯效果 perspective和trans ...
- CSS知识点集锦
CSS知识点集锦 CreateTime--2016年9月29日09:43:10Author:Marydon UpdateTime--2017年3月21日08:03:13 2.CSS样式优先级问题 ...
- CSS创意与视觉表现
视觉效果 CSS代码: .cover { padding: 36% 50%; background: linear-gradient(to right, white 50%, black calc(5 ...
- 关于视觉里程计以及VI融合的相关研究(长期更新)
1. svo 源码:https://github.com/uzh-rpg/rpg_svo 国内对齐文章源码的研究: (1)冯斌: 对其代码重写 https://github.com/yueying/O ...
- CSS学习笔记——视觉格式化模型 visual formatting model
CSS 视觉格式化模型(visual formatting model)是用来处理文档并将它显示在视觉媒体上的机制.他有一套既定的规则(也就是W3C规范),规定了浏览器该怎么处理每一个盒子.以下内容翻 ...
- CSS中的视觉格式化模型
视觉格式化模型 1. 简介 在视觉格式化模型中,文档树中的每个元素都将会根据盒模型产生零到多个盒子.这些盒子的布局由如下因素决定: 盒子的尺寸和类型 定位策略(正常文档流,浮动或者绝对定位) 和文档树 ...
- 【前端知识体系-CSS相关】CSS特效实现之Transition和Transform对比
CSS效果 1.使用div绘制图形(三角形)? <!DOCTYPE html> <html lang="en"> <head> <meta ...
随机推荐
- webupload项目中使用
目前项目需要一个多图上传的功能,使用LayUI并也是可以实现多图上传的,但是没有图片删除功能,参考了一下网上多图上传的插件,选择了WebUpload进行功能开发. 然而不幸的是,官方的插件并不带UI界 ...
- redhat linux 5.3修改Java环境变量
需要配置的环境变量 1. PATH环境变量.作用是指定命令搜索路径,在shell下面执行命令时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序.我们需要把jdk安装目录下的bin目录增 ...
- 约会安排 HDU - 4553(线段树区间查询,区间修改,区间合并)
题目: 寒假来了,又到了小明和女神们约会的季节. 小明虽为屌丝级码农,但非常活跃,女神们常常在小明网上的大段发言后热情回复“呵呵”,所以,小明的最爱就是和女神们约会.与此同时,也有很多基友找他开黑, ...
- 洛谷 P1939 矩阵加速(数列)
题意简述 \(a[1]=a[2]=a[3]=1\) \(a[x]=a[x−3]+a[x−1](x>3)\) 求a数列的第n项对1000000007取余的值. 题解思路 矩阵加速 设\[ F=\b ...
- 洛谷 P2152 [SDOI2009]SuperGCD
题意简述 求两个整数a,b的最大公约数0 < a , b ≤ 10 ^ 10000. 题解思路 如果 a % 2 == 0 && b % 2 == 0 gcd(a,b) = gc ...
- 面试java后端面经_1
1 自我介绍(建议提前准备:没准备的可以这样说:来自某学校 姓名 专业 学的啥 为啥学 自己陆陆续续开发的项目 毕业将近 找工作 在哪看到贵公司的招聘 准备了啥 大概这样) 例子:您好!我是来自XXX ...
- Selenium+java - Page Object设计模式
前言 Page Object(页面对象)模式,是Selenium实战中最为流行,并且被自动化测试同学所熟悉和推崇的一种设计模式之一.在设计测试时,把页面元素定位和元素操作方法按照页面抽象出来,分离成一 ...
- Java并发之内存模型(JMM)浅析
背景 学习Java并发编程,JMM是绕不过的槛.在Java规范里面指出了JMM是一个比较开拓性的尝试,是一种试图定义一个一致的.跨平台的内存模型.JMM的最初目的,就是为了能够支多线程程序设计的,每个 ...
- Python机器学习之数据探索可视化库yellowbrick
# 背景介绍 从学sklearn时,除了算法的坎要过,还得学习matplotlib可视化,对我的实践应用而言,可视化更重要一些,然而matplotlib的易用性和美观性确实不敢恭维.陆续使用过plot ...
- 完结撒花!129 集 21 个小时,松哥自制的 Spring Boot2 系列视频教程杀青啦!
松哥的 Spring Boot 教程分为几个阶段. 2016 松哥最早在 2016 年底的时候开始写 Spring Boot 系列的教程,记得当时在广州上班,年底那段时间在深圳出差,在深圳人生地不熟, ...