投影
1.单侧投影
思路是box-shadow 的第四个长度参数。它排在模糊半径参数之后,称作扩张半径。这个参数会根据你指定的值去扩大或当指定负值时,缩小投影的尺寸。例如,一个-5px 的扩张半径会把投影的宽度和高度各减少10px(即每边各5px)。
box-shadow: 0 5px 4px -4px black;
2.邻边投影
box-shadow: 3px 3px 6px -3px black;
3.双侧投影
用两块投影(每边各一块)来实现
box-shadow: 5px 0 5px -5px black,
-5px 0 5px -5px black;
不规则投影
解决办法是使用滤镜效果,filter。值有很多,比如blur()、grayscale() 以及drop-shadow()等。
实现不规则投影使用的是drop-shadow
filter: drop-shadow(2px 2px 10px rgba(0,0,0,.5));
注:drop-shadow会给任何非透明的部分打上投影,包括文本。如果文本设置了text-shadow,就是投影的投影。
染色效果
方案一:
为了解决给图片加一层统一的渲染风格,使用filter滤镜,并且需要将一些滤镜的值叠加使用。
sepia滤镜,它会给图片增加一种降饱和度的橙黄色染色效果。
saturate滤镜,给每个像素提升饱和度
hue-rotate滤镜,把每个像素的色相以指定的度数进行偏移
filter: sepia(1) saturate(4) hue-rotate(295deg);
原图:
方案二:
基于混合模式的方案。mix-blendmode可以为整个元素设置混合模式。background-blend-mode 可以为每层背景单独指定混合模式。
实现方式:
<a>
<img src="tiger.jpg" alt="Rawrrr!" />
</a>
a {
background: hsl(335, 100%, 50%);
}
img {
mix-blend-mode: luminosity;
}
毛玻璃效果
<div class="bg">
<main>
<blockquote>
"The only way to get rid of a temptation[...]"
</blockquote>
</main>
</div>
.bg {
width: 500px;
height: 300px;
background: url("dog.jpg");
background-size: cover;
}
main {
position: relative;
background: hsla(0, 0%, 100%, .3);
overflow: hidden;
}
main::before {
content: '';
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
filter: blur(20px);
margin: -30px;
}
折角效果
45°折角的解决方案
增加一个暗色的三角形来实现翻折效果。实现方法是增加另一层渐变来生成这个三角形并将其定位在右上角,这样就可以通过background-size 来控制折角的大小。
div {
background: #58a; /* 回退样式 */
background:
linear-gradient(to left bottom, transparent 50%, rgba(0,0,0,.4) 0) no-repeat 100% 0 / 2em 2em,
linear-gradient(-135deg, transparent 1.5em, #58a 0);
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。