看了 30 Seconds CSS,有了许多收获,所以写下了这篇文章,算是收藏一些代码小片段,留作后用。

一、手写 Loading 动画

(1)弹性加载动画

CSS 代码如下:

  .bounce-loading {
width: 20rem;
height: 10rem;
background-color:aqua;
display: flex;
justify-content: center;
align-items: center;
}
.bounce-loading > div {
width: 1rem;
height: 1rem;
border-radius: 0.5rem;
background-color:blueviolet;
margin: 0 0.5rem;
animation: bounce 1s infinite alternate;
}
@keyframes bounce {
0% {
transform: translateY(0);
opacity: 1;
}
100% {
transform: translateY(2rem);
opacity: 0.1;
}
}
.bounce-loading > div:nth-child(2) {
animation-delay: 0.2s;
}
.bounce-loading > div:nth-child(3) {
animation-delay: 0.4s;
}

HTML 代码如下:

  <div class="bounce-loading">
<div></div>
<div></div>
<div></div>
</div>

效果如下:

(2)旋转小圆圈

CSS 代码如下:

  .donut-loading {
width: 2rem;
height: 2rem;
border-radius: 2rem;
border: 3px solid rgba(0, 0, 0, 0.1);
border-left-color: #7983ff;
animation: rotate 1s infinite linear;
}
@keyframes rotate {
from {
transform: rotate(0deg)
}
to {
transform: rotate(360deg)
}
}

HTML 代码如下:

  <div class="donut-loading"></div>

效果如下:

二、构建一个宽高比固定的 div

CSS 代码如下:

  .reactive-height {
width: 50%;
background-color: aqua;
}
.reactive-height::before {
content: '';
float: left;
padding-top: 100%;
}
.reactive-height::after {
content: "";
clear: both;
display: table;
}

HTML 代码如下:

  <div class="reactive-height"></div>

三、自定义滚动条

CSS 代码如下:

  .custom-scrollbar {
width: 40rem;
height: 7rem;
background-color: aliceblue;
overflow-y: scroll;
}
.custom-scrollbar::-webkit-scrollbar {
width: 8px;
}
.custom-scrollbar::-webkit-scrollbar-thumb {
border-radius: 10px;
background-color:mediumpurple;
}

HTML 代码如下:

  <div class="custom-scrollbar">
<p>
Pellentesque habitant morbi tristique senectus et
netus et malesuada fames ac turpis egestas.
Vestibulum tortor quam, feugiat vitae,
ultricies eget, tempor sit amet, ante.
Donec eu libero sit amet quam egestas semper.
Aenean ultricies mi vitae est. Mauris placerat
eleifend leo. Quisque sit amet est et sapien
ullamcorper pharetra. Vestibulum erat wisi,
condimentum sed, commodo vitae, ornare sit amet,
wisi. Aenean fermentum, elit eget tincidunt condimentum,
eros ipsum rutrum orci, sagittis tempus lacus enim ac dui.
Donec non enim in turpis pulvinar facilisis. Ut felis.
Praesent dapibus, neque id cursus faucibus, tortor neque
egestas augue, eu vulputate magna eros eu erat. Aliquam
erat volutpat. Nam dui mi, tincidunt quis, accumsan
porttitor, facilisis luctus, metus
</p>
</div>

效果截图如下:

四、自定义文本选择时的样式

CSS 代码如下:

  .custom-text-selection {
width: 50%;
}
.custom-text-selection::selection {
background-color:navy;
color: white;
}

HTML 代码如下:

  <p class="custom-text-selection">
Pellentesque habitant morbi tristique senectus et
netus et malesuada fames ac turpis egestas.
Vestibulum tortor quam, feugiat vitae,
ultricies eget, tempor sit amet, ante.
Donec eu libero sit amet quam egestas semper.
Aenean ultricies mi vitae est. Mauris placerat
eleifend leo. Quisque sit amet est et sapien
ullamcorper pharetra. Vestibulum erat wisi,
condimentum sed, commodo vitae, ornare sit amet,
wisi. Aenean fermentum, elit eget tincidunt condimentum,
eros ipsum rutrum orci, sagittis tempus lacus enim ac dui.
Donec non enim in turpis pulvinar facilisis. Ut felis.
Praesent dapibus, neque id cursus faucibus, tortor neque
egestas augue, eu vulputate magna eros eu erat. Aliquam
erat volutpat. Nam dui mi, tincidunt quis, accumsan
porttitor, facilisis luctus, metus
</p>

效果截图如下:

五、禁止文本被选中

CSS 代码如下:

  .disable-selection {
width: 50%;
user-select: none;
}

HTML 代码如下:

  <p class="disable-selection">
Pellentesque habitant morbi tristique senectus et
netus et malesuada fames ac turpis egestas.
Vestibulum tortor quam, feugiat vitae,
ultricies eget, tempor sit amet, ante.
Donec eu libero sit amet quam egestas semper.
Aenean ultricies mi vitae est. Mauris placerat
eleifend leo. Quisque sit amet est et sapien
ullamcorper pharetra. Vestibulum erat wisi,
condimentum sed, commodo vitae, ornare sit amet,
wisi. Aenean fermentum, elit eget tincidunt condimentum,
eros ipsum rutrum orci, sagittis tempus lacus enim ac dui.
Donec non enim in turpis pulvinar facilisis. Ut felis.
Praesent dapibus, neque id cursus faucibus, tortor neque
egestas augue, eu vulputate magna eros eu erat. Aliquam
erat volutpat. Nam dui mi, tincidunt quis, accumsan
porttitor, facilisis luctus, metus
</p>

六、渐变色文本

HTML 代码如下:

  <p class="gradient-text">
gradient-text
</p>

CSS 代码如下:

  .gradient-text {
background: -webkit-linear-gradient(pink, red);
-webkit-text-fill-color: transparent;
-webkit-background-clip: text;
}

效果截图如下:

七、Hover 下划线效果

该部分实现一个鼠标移入时的下划线变化效果,共用一段 HTML 代码,代码如下:

  <p class="hover-underline-animation">
Hover Underline Animation
</p>

各部分实现效果的 CSS 代码各异,将分别给出。

(1)从中间开始变化

CSS 代码如下:

  .hover-underline-animation {
cursor: pointer;
}
.hover-underline-animation::after {
content: '';
width: 100%;
height: 2px;
display: block;
background-color: #7983ff;
transform: scaleX(0);
transition: transform 0.3s;
}
.hover-underline-animation:hover::after {
transform: scaleX(1);
}

效果截图如下:

(2)从左至右变化

CSS 代码如下:

  .hover-underline-animation {
cursor: pointer;
}
.hover-underline-animation::after {
content: '';
width: 100%;
height: 2px;
display: block;
background-color: #7983ff;
transform: scaleX(0);
transform-origin: right;
transition: transform 0.3s;
}
.hover-underline-animation:hover::after {
transform: scaleX(1);
transform-origin: left;
}

效果截图如下:

(3)实现左入左出、右入右出的效果

这一部分 HTML 代码略有不同,为了展示左入左出、右入右出的效果,需要三个元素来实现,所以 HTML 代码多了两个相同的元素:

  <span class="hover-underline-animation">
Hover Underline Animation
</span>
<span class="hover-underline-animation">
Hover Underline Animation
</span>
<span class="hover-underline-animation">
Hover Underline Animation
</span>

CSS 代码如下;

  .hover-underline-animation {
cursor: pointer;
position: relative;
}
.hover-underline-animation::after {
content: '';
position: absolute;
right: 0;
bottom: 0;
width: 0%;
height: 2px;
display: block;
background-color: #7983ff;
transition: all 0.3s;
}
.hover-underline-animation:hover::after {
width: 100%;
}
.hover-underline-animation:hover ~ .hover-underline-animation::after {
right: 100% !important;
}

效果截图如下:

八、:not 选择器

HTML 代码如下:

  <ul class="not-selector" type="none">
<li>One</li>
<li>Two</li>
<li>Three</li>
<li>Four</li>
</ul>

CSS 代码如下:

  .not-selector > li {
width: 20rem;
position: relative;
}
.not-selector > li:not(:last-child)::after {
content: "";
display: inline-block;
background-color: #c3c3c3;
height: 0.5px;
width: 100%;
position: absolute;
bottom: 0;
left: 0;
}

实现效果如下:

九、滚动容器的渐变遮罩

HTML 代码如下:

  <div class="overflow-scroll-gradient dn">
<div>
Pellentesque habitant morbi tristique senectus et
netus et malesuada fames ac turpis egestas.
Vestibulum tortor quam, feugiat vitae,
ultricies eget, tempor sit amet, ante.
Donec eu libero sit amet quam egestas semper.
Aenean ultricies mi vitae est. Mauris placerat
eleifend leo. Quisque sit amet est et sapien
ullamcorper pharetra. Vestibulum erat wisi,
condimentum sed, commodo vitae, ornare sit amet,
wisi. Aenean fermentum, elit eget tincidunt condimentum,
eros ipsum rutrum orci, sagittis tempus lacus enim ac dui.
Donec non enim in turpis pulvinar facilisis. Ut felis.
Praesent dapibus, neque id cursus faucibus, tortor neque
egestas augue, eu vulputate magna eros eu erat. Aliquam
erat volutpat. Nam dui mi, tincidunt quis, accumsan
porttitor, facilisis luctus, metus
</div>
</div>

CSS 代码如下:

  .overflow-scroll-gradient {
position: relative;
}
.overflow-scroll-gradient::before {
content: "";
display: inline-block;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 5rem;
background: linear-gradient(rgba(255, 255, 255, 1), rgba(255, 255, 255, 0.001))
}
.overflow-scroll-gradient::after {
content: "";
display: inline-block;
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 5rem;
background: linear-gradient(rgba(255, 255, 255, 0.001), rgba(255, 255, 255, 1))
}
.overflow-scroll-gradient > div {
width: 15rem;
height: 25rem;
overflow-y: scroll;
}

效果截图如下:

十、使用系统字体获得原生体验

HTML 代码:

  <p class="system-font-stack">This text uses the system font.</p>

CSS 代码如下:

  .system-font-stack {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

我在 Ubuntu 系统下显示效果如下:

十一、圆润的 checkbox

HTML 代码如下:

  <div>
<input type="checkbox" id="toggle" class="offscreen">
<label for="toggle" class="checkbox"></label>
</div>

CSS 代码如下:

  .offscreen {
display: none;
}
.checkbox {
width: 40px;
height: 20px;
border-radius: 20px;
display: inline-block;
background-color: rgba(0, 0, 0, 0.25);
position: relative;
cursor: pointer;
}
.checkbox::before {
content: "";
width: 18px;
height: 18px;
border-radius: 18px;
background-color: white;
position: absolute;
left: 1px;
top: 1px;
transition: transform .3s ease;
}
#toggle:checked + .checkbox {
background-color: #7983ff;
}
#toggle:checked + .checkbox::before {
transform: translateX(20px);
}

效果截图如下:

十二、绘制一个三角形

HTML 代码如下:

  <div class="triangle"></div>

CSS 代码如下:

  .triangle {
width: 0;
height: 0;
border: 1rem solid transparent;
border-bottom: 3rem solid blue;
}

利用 CSS border 的特性绘制三角形,改变 border 的宽度,可以绘制不同特性的三角形。

十三、过长的文本用省略号代替

HTML 代码如下:

  <p class="truncate-text">
This text will be truncated with ellipse ......
</p>

CSS 代码如下:

  .truncate-text {
width: 19rem;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
background-color: #c3c3c3
}

效果截图如下;

实用的 CSS 小片段的更多相关文章

  1. 一些比较实用的css片段

    新看了一个帖子,里面好多实用的css代码块,可拿出来当做功能库.先附上该文地址http://segmentfault.com/a/1190000002773955 里面的内容很多我挑了几个经过我验证的 ...

  2. 经验分享:10个简单实用的 jQuery 代码片段

    尽管各种 JavaScirpt 框架和库层出不穷,jQuery 仍然是 Web 前端开发中最常用的工具库.今天,向大家分享我觉得在网站开发中10个简单实用的 jQuery 代码片段. 您可能感兴趣的相 ...

  3. 15个实用的CSS在线实例教程

    前端技术可以说是必须学习的一个技术,现在做网站都需要懂DIV.CSS,在国内很多企业招网页设计师都要求会写基本的前端代码,所以前端技术是 必须了解的,对网页设计师本身也有帮助,今天向大家推荐一些不错的 ...

  4. 10个简单实用的 jQuery 代码片段

    尽管各种 JavaScirpt 框架和库层出不穷,jQuery 仍然是 Web 前端开发中最常用的工具库. 今天,向大家分享我觉得在网站开发中10个简单实用的 jQuery 代码片段. 1.平滑滚动到 ...

  5. 几个个实用的PHP代码片段【自己备份】

    检查服务器是否是 HTTPS 这个PHP代码片段能够读取关于你服务器 SSL 启用(HTTPS)信息. if ($_SERVER['HTTPS'] != "on") { echo ...

  6. 11个实用的CSS学习工具

    1. 盒子模型的幻灯片 通过3D转换效果产生的互动的幻灯片.按向左或向右箭头键切换,全屏观看会有更好的效果. 2. CSS Diner 通过一个简单的小游戏让你学习CSS selector,输入正确的 ...

  7. 100个实用的CSS技巧,以及遇见的问题和解决方案。

    前言 本篇文章将会持续更新,我会将我遇见的一些问题,和我看到的实用的CSS技巧记录下来,本篇文章会以图文混排的方式写下去.具体什么时候写完我也不清楚,反正我的目标是写100个.  本案例都是经本人实测 ...

  8. 一些实用的JQuery代码片段收集

    本文将展示50个非常实用的JQuery代码片段,这些代码能够给你的JavaScript项目提供帮助.其中的一些代码段是从jQuery1.4.2才开始支持的做法,另一些则是真正有用的函数或方法,他们能够 ...

  9. python实用30个小技巧

    python实用30个小技巧 展开1.原地交换两个数字Python 提供了一个直观的在一行代码中赋值与交换(变量值)的方法,请参见下面的示例: In [1]: x,y = 10 ,20 In [2]: ...

随机推荐

  1. spring之validation校验

    对于任何一个应用而言在客户端做的数据有效性验证都不是安全有效的,这时候就要求我们在开发的时候在服务端也对数据的有效性进行验证.SpringMVC自身对数据在服务端的校验有一个比较好的支持,它能将我们提 ...

  2. android drawable size

    ================

  3. Command操作数据

    Command常用属性 CommandText             要下达至数据源的命令 CommandTimeout          出错时等待时间 //定义一个变量来存储对数据库操作的字符串 ...

  4. sdfsdfsdf

    i- i- i-1i- i- i- i- i- i-

  5. C# 字符串处理—— 去除首位保留其他

    //去除首位 public static string RemoveFirstPlace(string s) { ) //输入空值直接Return { ")) //判断开头是否是零 s = ...

  6. C#生成Excel

    需要引用MyXls.SL2.dll的类库: 下载地址:http://sourceforge.net/projects/myxls/ 命名空间using org.in2bits.MyXls: //创建表 ...

  7. 设计模式之——外观or门面模式

    1.概念 定义一个高层的统一的外观接口类,该接口用于客户端调用,和一个实现类用来包装子系统中多个类,客户端可以通过客户端完成对子系统的方法调用. 2.适用场景 2.1 代码移植,降低了现有系统的复杂度 ...

  8. zoj 1037 最短路

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=37 找规律,水题 #include<iostream> #inclu ...

  9. [ZJOI2008]杀蚂蚁 Solution

    题目太长,不在此显示,见洛谷P2586 http://daniu.luogu.org/problem/show?pid=2586 模拟, 那就模拟呗: 各种WA, 然后好久才A了: 一种被社会报复了的 ...

  10. Git和Github快速入门

    一.什么是Git? 假设你在的公司要上线一个新功能,你们开发团队为实现这个新功能,写了大约5000行代码,上线没2天,就发现这个功能用户并不喜欢,你老板让你去掉这个功能,你怎么办?你说简单,直接把50 ...