目录
css实现图像填充文字
css实现手风琴效果
css实现网站变灰色
elementUi的导航栏效果
css实现滚动吸附效果
鼠标经过,元素内部放大
css实现图像填充文字
效果图:
代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS图像填充文字</title>
<style>
.text {
background-image: url(./imgs/1.webp);
/* 一定要让背景透明,这样后面的背景能透出来 */
color: transparent;
font-size: 50px;
text-align: center;
/* 以 盒子内 文字 作为 裁剪区域 ,向外 裁剪,文字之外 的 区域 都将 被 裁剪掉 */
-webkit-background-clip: text;
/* 这行代码是为了不让vscode报警告 */
background-clip: text;
}
</style>
</head>
<body>
<div class="text">
<h3>CSS</h3>
<p>CSS图像填充文字</p>
</div>
</body>
</html>
css实现手风琴效果
效果图:
代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.kodfun-galeri {
display: flex;
width: 500px;
height: 20rem;
/* 设置网格行与列之间的间隙 */
gap: 1rem;
margin: 50px auto;
}
.kodfun-galeri>div {
flex: 1;
/* 圆角 */
border-radius: 1rem;
/* 背景位置,可以接收两个值 x 和 y。只写一个,则表示x的值,y的值就为center */
background-position: center;
/* 背景是否平铺 */
background-repeat: no-repeat;
/* 背景图尺寸,宽auto自动,高100% */
background-size: auto 100%;
/* background-size: cover; */
/* 过渡效果,因为鼠标经过,div标签flex占的份数有变化,所以过渡要写到div的css属性里 */
transition: all .8s cubic-bezier(.25, .4, .45, 1.4);
cursor: pointer;
}
/* 核心:鼠标经过,改变div占的flex份数 */
.kodfun-galeri>div:hover {
flex: 5;
}
</style>
</head>
<body>
<div class="kodfun-galeri">
<div style="background-image: url('./images/0.png');"></div>
<div style="background-image: url('./images/1.png');"></div>
<div style="background-image: url('./images/2.png');"></div>
<div style="background-image: url('./images/6.png');"></div>
<div style="background-image: url('./images/8.png');"></div>
</div>
</body>
</html>
css实现网站变灰色
效果图:
代码:(给html添加 filter: grayscale(1) 即可)
<!DOCTYPE html>
<html lang="en" style="filter: grayscale(1)">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
* {
padding: 0;
margin: 0;
box-sizing: border-box;
}
html,body {
width: 100%;
height: 100%;
}
.box {
width: 100%;
height: 100%;
background-color: skyblue;
}
</style>
</head>
<body>
<div class="box">一行代码实现网站变灰色</div>
</body>
</html>
elementUi的导航栏效果
效果图:
代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
* {
padding: 0;
margin: 0;
box-sizing: border-box;
}
html,
body {
width: 100%;
height: 100%;
}
header {
position: fixed;
top: 0;
width: 100%;
height: 60px;
/* background-color: pink; */
/* 径向渐变 */
background-image: radial-gradient(transparent 1px,#fff 1px);
/* 背景缩放 */
background-size: 4px 4px;
/* 元素后面区域添加 饱和度 和 模糊效果 */
backdrop-filter: saturate(50%) blur(4px);
}
main {
height: 200vh;
margin-top: 60px;
background-color: skyblue;
text-align: center;
}
</style>
</head>
<body>
<header>头部</header>
<main>内容部分</main>
</body>
</html>
css实现滚动吸附效果
效果图:
超过一半,会自动吸附过去
代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
* {
padding: 0;
margin: 0;
box-sizing: border-box;
}
html,
body {
width: 100%;
height: 100%;
}
li {
list-style: none;
}
.box ul {
/* 防止换行 */
white-space: nowrap;
/* 设置水平媳妇效果 两个参数,第一个参数设置x轴或者y轴,第二个参数设置吸附方式 */
scroll-snap-type: x mandatory;
/* scroll-behavior: smooth; */
/* 启用水平滚动条 */
overflow-x: scroll;
}
.box ul li {
/* 设置为行内块元素,让li一行显示 */
display: inline-block;
width: 100vw;
line-height: 300px;
text-align: center;
background-color: pink;
font-size: 50px;
/* 设置吸附位置,去只有 start center end */
scroll-snap-align: start;
/* scroll-snap-stop: always; */
}
.box ul li:nth-child(2) {
background-color: skyblue;
}
.box ul li:nth-child(3) {
background-color: hotpink;
}
</style>
</head>
<body>
<div class="box">
<ul>
<li>A</li>
<li>B</li>
<li>C</li>
</ul>
</div>
</body>
</html>
鼠标经过,元素内部放大
效果图:
代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
* {
padding: 0;
margin: 0;
box-sizing: border-box;
}
html,
body {
width: 100%;
height: 100%;
}
.box {
position: relative;
overflow: hidden;
width: 200px;
height: 200px;
margin: 50px auto;
cursor: pointer;
border: 1px solid #ccc;
border-radius: 5px;
}
.box>img {
width: 100%;
height: 100%;
/* 因为是图片放大,所以过渡需要给图片添加 */
transition: all .3s;
}
.box>span {
position: absolute;
bottom: 5px;
left: 50%;
transform: translateX(-50%);
color: #fff;
font-size: 13px;
}
.box:hover>img{
transform: scale(1.4);
}
</style>
</head>
<body>
<div class="box">
<img src="./imgs/1.jpg" alt="">
<span>详情...</span>
</div>
</body>
</html>
附图: