Appearance
vite项目的logo效果是怎么做出来的
不知道大家有没有注意过 vite 初始化完成以后的,首页上有两个图标。
一个是 vite 的logo,一个是 vue 的logo。(使用vue创建的项目)
这种淡淡的荧光效果非常不错,一开始我以为是 box-show 实现的,后来看源码发现并不是,而是用了 css 中的 filter: drop-shadow( )。
filter
filter是在 css3 中新增加的属性用于对元素应用图形效果(如模糊、颜色偏移等),通常用于图像、背景或边框的视觉效果处理。它类似于图像编辑软件中的滤镜功能。(灵感或许真的来自photoshop)
用法
css
element {
filter: <filter-function> | none;
}
高斯模糊: blur(radius)
html
<template>
<div class="filter-box-container">
<div class="filter-box">滤镜盒子</div>
</div>
</template>
<script>
export default {
name: 'FilterBox'
}
</script>
<style scoped>
.filter-box-container {
position: relative;
width: 100%;
height: 100%;
}
.filter-box {
width: 200px;
height: 200px;
background-color: #41B883;
border: 1px solid #35495E;
margin: 40px auto;
text-align: center;
line-height: 200px;
}
.filter-box:hover {
filter: blur(2px);
}
</style>
亮度: brightness(amount)
amount 为百分比,将线性乘法器应用于输入图像,以调整其亮度。值为 0% 将创建全黑图像;值为 100% 会使输入保持不变,其他值是该效果的线性乘数。如果值大于 100% 将使图像更加明亮。
css
.filter-box:hover {
filter: brightness(150%);
}
ps: 线性乘法器是指将图像中每个像素的颜色值(通常是 RGB 值)按比例进行放大或缩小。(下文有详解)
对比度: contrast(amount) 【用处不大】
amount 为百分比。值是 0% 将使图像变灰;值是 100%,则无影响;若值超过 100% 将增强对比度。(其他值是该效果的线性乘数)
css
.filter-box:hover {
filter: contrast(150%);
}
饱和度: saturate(amount) 【用处不大】
amount 为百分比。值为 0% 将使图像变黑白;值为 100% 则无变化。(其他值是该效果的线性乘数)
css
.filter-box:hover {
filter: saturate(150%);
}
透明度: opacity(amount)
amount 为百分比。值为 0% 将使图像完全透明;值为 100% 则无变化。类似于opacity属性。(其他值是该效果的线性乘数)
css
.filter-box:hover {
filter: opacity(50%);
}
灰度转换: grayscale(amount)
将图像转换为灰度图。值为 100% 则完全转为灰度图像,若为初始值 0% 则图像无变化。(其他值是该效果的线性乘数)
css
.filter-box:hover {
filter: grayscale(50%);
}
色相旋转: hue-rotate(angle) 【用处不大】
旋转图像的色相。angle 为角度,值为 0deg 将无变化。
css
.filter-box:hover {
filter: hue-rotate(180deg);
}
反相颜色: invert(amount) 【用处不大】
将图像转换为反色。值为 100% 则完全反转图像,若为初始值 0% 则图像无变化。(其他值是该效果的线性乘数)
css
.filter-box:hover {
filter: invert(40%);
}
褐色化: sepia(amount) 【用处不大】
将图像转换为褐色。值为 100% 则完全褐色化图像,若为初始值 0% 则图像无变化。(其他值是该效果的线性乘数)
css
.filter-box:hover {
filter: sepia(40%);
}
阴影效果: drop-shadow()
沿图像的轮廓生成阴影效果。阴影语法类似于 box-shadow,但不允许使用 inset 关键字以及 spread 参数。
css
.filter-box:hover {
filter: drop-shadow(0 0 2em #42b883aa);
}
组合
filter支持将多个滤镜组合在一起使用,中间以空格分隔。滤镜将按声明顺序依次应用。
css
.filter-box:hover {
filter: contrast(175%) brightness(103%);
}