CSS3与文字渐变光影流动动画效果实现

by zhangxinxu from http://www.zhangxinxu.com
本文地址:http://www.zhangxinxu.com/wordpress/?p=4016

1.shape-outside,shape-margin等;

by zhangxinxu from https://www.zhangxinxu.com/wordpress/?p=8453

2.小tips:了解CSS/CSS3原生变量var

by zhangxinxu from http://www.zhangxinxu.com/wordpress/?p=5804

3.常见的CSS图形绘制合集

#square {
width: 100px;
height: 100px;
background: red;
} #rectangle {
width: 200px;
height: 100px;
background: red;
} #circle {
width: 100px;
height: 100px;
background: red;
border-radius: 50%
} #oval {
width: 200px;
height: 100px;
background: red;
border-radius: 100px / 50px;
} #triangle-up {
width:;
height:;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
border-bottom: 100px solid red;
} #triangle-down {
width:;
height:;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
border-top: 100px solid red;
} #triangle-left {
width:;
height:;
border-top: 50px solid transparent;
border-right: 100px solid red;
border-bottom: 50px solid transparent;
} #triangle-right {
width:;
height:;
border-top: 50px solid transparent;
border-left: 100px solid red;
border-bottom: 50px solid transparent;
} #triangle-topleft {
width:;
height:;
border-top: 100px solid red;
border-right: 100px solid transparent;
} #triangle-topright {
width:;
height:;
border-top: 100px solid red;
border-left: 100px solid transparent;
} #triangle-bottomleft {
width:;
height:;
border-bottom: 100px solid red;
border-right: 100px solid transparent;
} #triangle-bottomright {
width:;
height:;
border-bottom: 100px solid red;
border-left: 100px solid transparent;
} #curvedarrow {
position: relative;
width:;
border-top: 90px solid transparent;
border-right: 90px solid red;
transform: rotate(10deg) translateX(100%);
}
#curvedarrow:after {
content: "";
position: absolute;
border: 0 solid transparent;
border-top: 30px solid red;
border-radius: 200px 0 0 0;
top: -120px;
left: -90px;
width: 120px;
height: 120px;
transform: rotate(45deg);
} #trapezoid {
border-bottom: 100px solid red;
border-left: 25px solid transparent;
border-right: 25px solid transparent;
height:;
width: 100px;
} #parallelogram {
width: 150px;
height: 100px;
transform: skew(20deg);
background: red;
} #star-six {
width:;
height:;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
border-bottom: 100px solid red;
position: relative;
}
#star-six:after {
width:;
height:;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
border-top: 100px solid red;
position: absolute;
content: "";
top: 30px;
left: -50px;
} #star-five {
margin: 50px 0;
position: relative;
display: block;
color: red;
width: 0px;
height: 0px;
border-right: 100px solid transparent;
border-bottom: 70px solid red;
border-left: 100px solid transparent;
transform: rotate(35deg);
}
#star-five:before {
border-bottom: 80px solid red;
border-left: 30px solid transparent;
border-right: 30px solid transparent;
position: absolute;
height:;
width:;
top: -45px;
left: -65px;
display: block;
content: '';
transform: rotate(-35deg);
}
#star-five:after {
position: absolute;
display: block;
color: red;
top: 3px;
left: -105px;
width: 0px;
height: 0px;
border-right: 100px solid transparent;
border-bottom: 70px solid red;
border-left: 100px solid transparent;
transform: rotate(-70deg);
content: '';
} #pentagon {
position: relative;
width: 54px;
box-sizing: content-box;
border-width: 50px 18px 0;
border-style: solid;
border-color: red transparent;
}
#pentagon:before {
content: "";
position: absolute;
height:;
width:;
top: -85px;
left: -18px;
border-width: 0 45px 35px;
border-style: solid;
border-color: transparent transparent red;
} #hexagon {
width: 100px;
height: 55px;
background: red;
position: relative;
}
#hexagon:before {
content: "";
position: absolute;
top: -25px;
left:;
width:;
height:;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
border-bottom: 25px solid red;
}
#hexagon:after {
content: "";
position: absolute;
bottom: -25px;
left:;
width:;
height:;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
border-top: 25px solid red;
} #octagon {
width: 100px;
height: 100px;
background: red;
position: relative;
}
#octagon:before {
content: "";
width: 100px;
height:;
position: absolute;
top:;
left:;
border-bottom: 29px solid red;
border-left: 29px solid #fff;
border-right: 29px solid #fff;
box-sizing: border-box;
}
#octagon:after {
content: "";
width: 100px;
height:;
position: absolute;
bottom:;
left:;
border-top: 29px solid red;
border-left: 29px solid #fff;
border-right: 29px solid #fff;
box-sizing: border-box;
} #heart {
position: relative;
width: 100px;
height: 90px;
}
#heart:before,
#heart:after {
position: absolute;
content: "";
left: 50px;
top:;
width: 50px;
height: 80px;
background: red;
border-radius: 50px 50px 0 0;
transform: rotate(-45deg);
transform-origin: 0 100%;
}
#heart:after {
left:;
transform: rotate(45deg);
transform-origin: 100% 100%;
} #infinity {
position: relative;
width: 212px;
height: 100px;
box-sizing: content-box;
}
#infinity:before,
#infinity:after {
content: "";
box-sizing: content-box;
position: absolute;
top:;
left:;
width: 60px;
height: 60px;
border: 20px solid red;
border-radius: 50px 50px 0 50px;
transform: rotate(-45deg);
}
#infinity:after {
left: auto;
right:;
border-radius: 50px 50px 50px 0;
transform: rotate(45deg);
} #diamond {
width:;
height:;
border: 50px solid transparent;
border-bottom-color: red;
position: relative;
top: -50px;
}
#diamond:after {
content: '';
position: absolute;
left: -50px;
top: 50px;
width:;
height:;
border: 50px solid transparent;
border-top-color: red;
} #diamond-shield {
width:;
height:;
border: 50px solid transparent;
border-bottom: 20px solid red;
position: relative;
top: -50px;
}
#diamond-shield:after {
content: '';
position: absolute;
left: -50px;
top: 20px;
width:;
height:;
border: 50px solid transparent;
border-top: 70px solid red;
} #diamond-narrow {
width:;
height:;
border: 50px solid transparent;
border-bottom: 70px solid red;
position: relative;
top: -50px;
}
#diamond-narrow:after {
content: '';
position: absolute;
left: -50px;
top: 70px;
width:;
height:;
border: 50px solid transparent;
border-top: 70px solid red;
} #cut-diamond {
border-style: solid;
border-color: transparent transparent red transparent;
border-width: 0 25px 25px 25px;
height:;
width: 50px;
box-sizing: content-box;
position: relative;
margin: 20px 0 50px 0;
}
#cut-diamond:after {
content: "";
position: absolute;
top: 25px;
left: -25px;
width:;
height:;
border-style: solid;
border-color: red transparent transparent transparent;
border-width: 70px 50px 0 50px;
} #egg {
display: block;
width: 126px;
height: 180px;
background-color: red;
border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
} #pacman {
width: 0px;
height: 0px;
border-right: 60px solid transparent;
border-top: 60px solid red;
border-left: 60px solid red;
border-bottom: 60px solid red;
border-top-left-radius: 60px;
border-top-right-radius: 60px;
border-bottom-left-radius: 60px;
border-bottom-right-radius: 60px;
} #talkbubble {
width: 120px;
height: 80px;
background: red;
position: relative;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
border-radius: 10px;
}
#talkbubble:before {
content: "";
position: absolute;
right: 100%;
top: 26px;
width:;
height:;
border-top: 13px solid transparent;
border-right: 26px solid red;
border-bottom: 13px solid transparent;
} #burst-12 {
background: red;
width: 80px;
height: 80px;
position: relative;
text-align: center;
}
#burst-12:before,
#burst-12:after {
content: "";
position: absolute;
top:;
left:;
height: 80px;
width: 80px;
background: red;
}
#burst-12:before {
transform: rotate(30deg);
}
#burst-12:after {
transform: rotate(60deg);
} #burst-8 {
background: red;
width: 80px;
height: 80px;
position: relative;
text-align: center;
transform: rotate(20deg);
}
#burst-8:before {
content: "";
position: absolute;
top:;
left:;
height: 80px;
width: 80px;
background: red;
transform: rotate(135deg);
} #yin-yang {
width: 96px;
height: 48px;
background: #fff;
border-color: red;
border-style: solid;
border-width: 2px 2px 50px 2px;
border-radius: 100%;
position: relative;
}
#yin-yang:before {
content: "";
position: absolute;
top: 50%;
left:;
background: #fff;
border: 18px solid red;
border-radius: 100%;
width: 12px;
height: 12px;
}
#yin-yang:after {
content: "";
position: absolute;
top: 50%;
left: 50%;
background: red;
border: 18px solid #fff;
border-radius: 100%;
width: 12px;
height: 12px;
} #badge-ribbon {
position: relative;
background: red;
height: 100px;
width: 100px;
border-radius: 50px;
}
#badge-ribbon:before,
#badge-ribbon:after {
content: '';
position: absolute;
border-bottom: 70px solid red;
border-left: 40px solid transparent;
border-right: 40px solid transparent;
top: 70px;
left: -10px;
transform: rotate(-140deg);
}
#badge-ribbon:after {
left: auto;
right: -10px;
transform: rotate(140deg);
} #space-invader {
box-shadow: 0 0 0 1em red,
0 1em 0 1em red,
-2.5em 1.5em 0 .5em red,
2.5em 1.5em 0 .5em red,
-3em -3em 0 0 red,
3em -3em 0 0 red,
-2em -2em 0 0 red,
2em -2em 0 0 red,
-3em -1em 0 0 red,
-2em -1em 0 0 red,
2em -1em 0 0 red,
3em -1em 0 0 red,
-4em 0 0 0 red,
-3em 0 0 0 red,
3em 0 0 0 red,
4em 0 0 0 red,
-5em 1em 0 0 red,
-4em 1em 0 0 red,
4em 1em 0 0 red,
5em 1em 0 0 red,
-5em 2em 0 0 red,
5em 2em 0 0 red,
-5em 3em 0 0 red,
-3em 3em 0 0 red,
3em 3em 0 0 red,
5em 3em 0 0 red,
-2em 4em 0 0 red,
-1em 4em 0 0 red,
1em 4em 0 0 red,
2em 4em 0 0 red;
background: red;
width: 1em;
height: 1em;
overflow: hidden;
margin: 50px 0 70px 65px;
} #tv {
position: relative;
width: 200px;
height: 150px;
margin: 20px 0;
background: red;
border-radius: 50% / 10%;
color: white;
text-align: center;
text-indent: .1em;
}
#tv:before {
content: '';
position: absolute;
top: 10%;
bottom: 10%;
right: -5%;
left: -5%;
background: inherit;
border-radius: 5% / 50%;
} #chevron {
position: relative;
text-align: center;
padding: 12px;
margin-bottom: 6px;
height: 60px;
width: 200px;
}
#chevron:before {
content: '';
position: absolute;
top:;
left:;
height: 100%;
width: 51%;
background: red;
transform: skew(0deg, 6deg);
}
#chevron:after {
content: '';
position: absolute;
top:;
right:;
height: 100%;
width: 50%;
background: red;
transform: skew(0deg, -6deg);
} #magnifying-glass {
font-size: 10em;
display: inline-block;
width: 0.4em;
box-sizing: content-box;
height: 0.4em;
border: 0.1em solid red;
position: relative;
border-radius: 0.35em;
}
#magnifying-glass:before {
content: "";
display: inline-block;
position: absolute;
right: -0.25em;
bottom: -0.1em;
border-width:;
background: red;
width: 0.35em;
height: 0.08em;
transform: rotate(45deg);
} #facebook-icon {
background: red;
text-indent: -999em;
width: 100px;
height: 110px;
box-sizing: content-box;
border-radius: 5px;
position: relative;
overflow: hidden;
border: 15px solid red;
border-bottom:;
}
#facebook-icon:before {
content: "/20";
position: absolute;
background: red;
width: 40px;
height: 90px;
bottom: -30px;
right: -37px;
border: 20px solid #fff;
border-radius: 25px;
box-sizing: content-box;
}
#facebook-icon:after {
content: "/20";
position: absolute;
width: 55px;
top: 50px;
height: 20px;
background: #fff;
right: 5px;
box-sizing: content-box;
} #moon {
width: 80px;
height: 80px;
border-radius: 50%;
box-shadow: 15px 15px 0 0 red;
} #flag {
width: 110px;
height: 56px;
padding-top: 15px;
position: relative;
background: red;
}
#flag:after {
content: "";
position: absolute;
left:;
bottom:;
width:;
height:;
border-bottom: 13px solid #fff;
border-left: 55px solid transparent;
border-right: 55px solid transparent;
} #cone {
width:;
height:;
border-left: 70px solid transparent;
border-right: 70px solid transparent;
border-top: 100px solid red;
border-radius: 50%;
} #cross {
background: red;
height: 100px;
position: relative;
width: 20px;
}
#cross:after {
background: red;
content: "";
height: 20px;
left: -40px;
position: absolute;
top: 40px;
width: 100px;
} #base {
background: red;
display: inline-block;
height: 55px;
margin-left: 20px;
margin-top: 55px;
position: relative;
width: 100px;
}
#base:before {
border-bottom: 35px solid red;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
content: "";
height:;
left:;
position: absolute;
top: -35px;
width:;
} #pointer {
width: 200px;
height: 40px;
position: relative;
background: red;
}
#pointer:after {
content: "";
position: absolute;
left:;
bottom:;
width:;
height:;
border-left: 20px solid white;
border-top: 20px solid transparent;
border-bottom: 20px solid transparent;
}
#pointer:before {
content: "";
position: absolute;
right: -20px;
bottom:;
width:;
height:;
border-left: 20px solid red;
border-top: 20px solid transparent;
border-bottom: 20px solid transparent;
} #lock {
font-size: 8px;
position: relative;
width: 18em;
height: 13em;
border-radius: 2em;
top: 10em;
box-sizing: border-box;
border: 3.5em solid red;
border-right-width: 7.5em;
border-left-width: 7.5em;
margin: 0 0 6rem 0;
}
#lock:before {
content: "";
box-sizing: border-box;
position: absolute;
border: 2.5em solid red;
width: 14em;
height: 12em;
left: 50%;
margin-left: -7em;
top: -12em;
border-top-left-radius: 7em;
border-top-right-radius: 7em;
}
#lock:after {
content: "";
box-sizing: border-box;
position: absolute;
border: 1em solid red;
width: 5em;
height: 8em;
border-radius: 2.5em;
left: 50%;
top: -1em;
margin-left: -2.5em;
}

by zhangxinxu from https://www.zhangxinxu.com/wordpress/?p=8386

3.css无缝滚动

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
<style>
@-webkit-keyframes move
{
0%{
left:0;
}
100%
{
left:-500px;
}
}
#wrap{ width:500px;height:100px;border:1px solid #000; position:relative;margin:100px auto; overflow:hidden;}
#list{ position:absolute;left:0;top:0;margin:0;padding:0; -webkit-animation:3s move infinite linear; width:200%;}
#list li{ list-style:none;width:98px;height:98px;border:1px solid #fff;background:#000; color:#fff; font:50px/98px Arial; text-align:center; float:left;}
#wrap:hover #list{ -webkit-animation-play-state:paused;}
</style>
</head>
<body>
<div id="wrap">
<ul id="list">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
</div>
</body>
</html>

 4.微信群聊天头像显示(伪元素布局)

by zhangxinxu from https://www.zhangxinxu.com/wordpress/?p=8540

5.max-height:更多显示与收起缓动效果

<div class="minHeight">
<input type="checkbox" id="checkbox">
<p class="elements">fhsagihiaoghoagifhsagihiaoghoagifhsagihiaoghoagifhsagi
hiaoghoagifhsagihiaoghoagifhsagihiaoghoagifhsagihiaoghoagifhsagihiaoghoagifhsagihiaoghoagifhs
agihiaoghoagifhsagihiaoghoagifhsagihiaoghoagifhsagihiaoghoagifhsagihiaoghoagi</p>
<label for="checkbox" class="inp-label label-in">更多</label>
<label for="checkbox" class="inp-label label-out">收起</label>
</div>
#checkbox {
opacity:;
position: absolute;
} .elements {
width: 50px;
max-height: 10px;
transition: 0.3s;
overflow: hidden;
word-break: break-all;
} :checked~.elements {
max-height: 500px;
} :checked~.label-in {
display: none;
} :checked~.label-out {
display: inline-block;
} .label-out {
display: none;
}

6.块状元素右对齐:margin-left:auto可以实现,不一定用float:right

7.弹窗背景毛玻璃现象,backdrop-filter:blur(5px);

  

by zhangxinxu from https://www.zhangxinxu.com/wordpress/2019/11/css-backdrop-filter/

  

8.响应式正方形样式 .box{width:25%;height:0;padding-bottom:25%;background:red;}

9.css实现下划线跟随导航栏移动

<div class="tabbar-box flex flexAlignCenter">
<div class="tab-item"><a href="/">首页</a></div>
<div class="tab-item"><a href="/">产品</a></div>
<div class="tab-item"><a href="/">价格</a></div>
<div class="tab-item"><a href="/">下载中心 </a</div>
<div class="tab-item"><a href="/">联系我们</a</div>
</div>
header .tabbar-box .tab-item{
padding: 0 20px;
position: relative;
font-size: 18px;
transition: 0.3;
flex-shrink:; }
header .tabbar-box .tab-item::after{
content:'/';
position: absolute;
display: block;
right:;
bottom: 5px;
}
header .tabbar-box .tab-item:last-child::after{
content:'';
}
header .tabbar-box .tab-item a{
transition: 0.3s;
display: block;
padding: 0 10px 5px;
position: relative;
}
header .tabbar-box .tab-item a::before{
position: absolute;
left: 100%;
top:;
border-bottom: 2px solid transparent;
width:;
height: 100%;
content: "";
transition: all 300ms;
}
header .tabbar-box .tab-item:hover a{
color: #cd651b;
} header .tabbar-box .tab-item:hover a::before{
left:;
top:;
z-index: -1;
border-bottom-color: #cd651b;
width: 100%;
transition-delay: 100ms;
}
header .tabbar-box .tab-item:hover + div a::before{
left:;
}

10.让CSS flex布局最后一行列表左对齐的N种方法 link:https://www.zhangxinxu.com/wordpress/2019/08/css-flex-last-align/

CSS --记录的更多相关文章

  1. 不常用但是很实用的css记录

    本文主旨是记录一些不常用但是非常炫酷的css属性,提升用户体验的捷径之一. 1.background-attachment  滚动视差    https://codepen.io/Chokcoco/p ...

  2. 学习CSS记录:CSS文件引入到HTML中

    1.直接写在标签元素中,通常称为行间样式.(优先级较高,有悖于结构与表现的分离,建议不使用) 例:<body style="background:red;"></ ...

  3. 学习CSS记录:选择符优先级

    1.标有!important 关键字声明属性. 2.HTML中的CSS样式属性. 3.作者编辑的CSS文件模式属性. 4.用户设置的样式. 5.浏览器默认的样式. ------------------ ...

  4. 小白学习css记录

    一.复习 什么是CSS? 层叠样式表 -层叠样式只会被覆盖而不会被替代 CSS的使用方式 style属性---> <h1 style="css属性"></h ...

  5. css记录

    padding padding-top是在绿色边框内,从顶部向下移20像素位置,默认padding-top 为0时,红色边框为20像素高,通过padding-top属性,为顶部增加了20像素,这时顶部 ...

  6. keyup实现在输入状态不发送搜索请求,停止输入后发送

    个人需求:通过keyup事件配合后台elasticsearch(弹性搜索),用户在输入状态不发送请求,等停止输入后发送请求. 这是个思考笔记,因为项目临时需要弹性搜索功能,所以临时想了这么个法子,方法 ...

  7. uni-app学习(二)

    1. uni-app学习(二) 1.1. 好用css记录 一定透明度的背景色background: rgba(255,255,255,.6); 1.2. 好用的代码段 store(用户登录) expo ...

  8. HTML-T

    a标签跳转 <a href="new_link" target="_blank">在新建页面打开链接</a>. <a href=& ...

  9. CodeForces 隐藏标签

    设置css 记录. 以防忘记.

随机推荐

  1. codeforces342B

    Xenia and Spies CodeForces - 342B Xenia the vigorous detective faced n (n ≥ 2) foreign spies lined u ...

  2. django下的xadmin相关设置

    后台设置中文在 settings.py LANGUAGE_CODE = 'zh-hans' TIME_ZONE = 'Asia/Shanghai' USE_I18N = True USE_L10N = ...

  3. BZOJ3236[Ahoi2013]作业——莫队+树状数组/莫队+分块

    题目描述 输入 输出 样例输入 3 4 1 2 2 1 2 1 3 1 2 1 1 1 3 1 3 2 3 2 3 样例输出 2 2 1 1 3 2 2 1 提示 N=100000,M=1000000 ...

  4. os与sys模块

    os 1.os.pardir #获取当前目录的父目录字符串名:('..') 2.os.mkdir('dirname') #创建单级目录:相当于shell中mkdir dirname 3.os.make ...

  5. <el-upload></el-upload>组件上传图片到七牛云

    [01]搭建好页面结构.定义数据与接口 <el-upload method="post" ref="upload" :action="domai ...

  6. Eureka 配置

    #是否向服务注册中心注册自己,该值默认为trueeureka.client.register-with-eureka=falseserver端建议设为false #服务注册中心的配置内容,指定服务注册 ...

  7. Multi-View 3D Reconstruction with Geometry and Shading——Part-1

    From PhDTheses Multi-View 3D Reconstruction with Geometry and Shading 计算机视觉的主要任务就是利用图像信息能智能理解周围的世界. ...

  8. Apache POI 示例

    Apache POI 3.17 Javadocs 用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office(Excel.WO ...

  9. maven的安装教程

    一.准备工作  1.确定电脑上已经成功安装jdk7.0以上版本                 2.win10操作系统                 3.maven安装包            下载 ...

  10. 面向对象学习(python)

    面向对象总结 一.面向对象与面向过程的区别 面向过程:根据业务逻辑从上到下写垒代码 面向对象:对函数进行分类和封装,让开发“更快更好更强...” 1.面向过程编程: 概念:发过程中最常见的操作就是粘贴 ...