CSS中的视觉效果

1.单侧投影

重点:box-shadow的第四个长度参数,扩张半径。

单侧投影:
box-shadow: 0 5px 4px -4px black;//将扩张半径,设为高斯模糊的负值
Paste_Image.png
邻边投影:
box-shadow:3px 3px 6px -3px black;//将将扩张半径,设为高斯模糊的负值的一半;将位移值设为高斯模糊的一半。
Paste_Image.png
双侧投影:
box-shadow:5px 0px 5px -5px black, -5px 0px 5px -5px black;
//将单侧投影技巧应用两次。
Paste_Image.png

2.不规则投影

问题:单用box-shadow不能对不规则的形状,例如:透明、折角效果、对话气泡等。

解决方案:应用滤镜效果规范

几个滤镜串起来

filter: blur() grayscale() drop-shadow();

box-shadow: 2px 2px 10px rgba(0,0,0,.5);

改成

filter: drop-shadow(2px 2px 10px rgba(0,0,0,.5));
Paste_Image.png

重点代码:

               /*box-shadow: .1em .1em .3em rgba(0,0,0,.5);*/

               -webkit-filter:drop-shadow(.1em .1em .1emrgba(0,0,0,.5));

               filter:drop-shadow(.1em .1em .1emrgba(0,0,0,.5));

<div class="speech">Speech bubble</div>

<div class="dotted">Dotted border</div>

<div class="cutout">Cutout corners</div>

 

 

div {

               position:relative;

               display:inline-flex;

               flex-direction:column;

               justify-content:center;

               vertical-align:bottom;

               box-sizing:border-box;

               width:5.9em;

               height:5.2em;

               margin:.6em;

               background:#fb3;

               /*box-shadow: .1em .1em .3em rgba(0,0,0,.5);*/

               -webkit-filter:drop-shadow(.1em .1em .1emrgba(0,0,0,.5));

               filter:drop-shadow(.1em .1em .1emrgba(0,0,0,.5));

               font:200%/1.6Baskerville, Palatino, serif;

               text-align:center;

}

 

.speech {

               border-radius:.3em;

}

 

.speech::before {

               content:'';

               position:absolute;

               top:1em;

               right:-.7em;

               width:0;

               height:0;

               border:1em solidtransparent;

               border-left-color:#fb3;

               border-right-width:0;

}

 

.dotted {

               background:transparent;

               border:.3em dotted#fb3;

}

 

.cutout {

               border:.5em solid#58a;

               border-image:1url('data:image/svg+xml,\

                                    <svg xmlns="http://www.w3.org/2000/svg"\

                                                width="3" height="3" fill="%23fb3">\

                                                  <polygon points="0,1 1,0 2,0 3,1 3,2 2,3 1,3 0,2"/>\

                                         </svg>');

               background-clip:padding-box;

}

3.染色效果

基于滤镜的方案

sepia() 降低饱和度的橙黄色效果

saturate() 提高每个像素的饱和度

hue-rotate() 每个像素的色相以指定的度数进行偏移

img {

               max-width:640px;

               transition:1s filter,1s -webkit-filter;

               filter:sepia()saturate(4) hue-rotate(295deg);

}

 

img:hover,

img:focus {

               filter:none;

}

Paste_Image.png
基于混合模式的方案

混合模式:luminosity,保留上层元素的HSL亮度信息,并从下层吸取色相饱和度。所以把下层设置成我们想要的色相饱和度,再混合可以保证图片亮度。

方案:第一种,把图片放在一个容器中,容器背景设成我们要的色调;第二种:不要图片元素,用<div>元素,第一层背景为图片,第二次背景为主色调。

<img>方法

<a href="#">

![](http://upload-images.jianshu.io/upload_images/4648896-b3485a5b716ebd66.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

</a>

 

a{

    display:inline-block;

    background:hsl(335, 100%, 50%);

}

 

a img {

               mix-blend-mode:luminosity;

               max-width:640px;

}

 
Paste_Image.png

4.毛玻璃效果

解决方案:应用伪元素,将其置于元素下层,偏移量设置为0,进行blur()模糊处理。

注意:模糊效果的边缘会逐渐减弱,因此,要让伪元素相对宿主元素的尺寸再向外扩张至少-20px,保险起见,取-30px。对于超出尺寸部分,对main元素设置,overflow:hidden,来解决。

<main>

<blockquote>“The only way to
get rid of a temptation is to yield to it. Resist it, and your soul grows sick
with longing for the things it has forbidden to itself, with desire for what
its monstrous laws have made monstrous and unlawful.”</em>

<footer>— <cite>Oscar Wilde, The
Picture of Dorian Gray</cite></footer>

</blockquote>

</main>

body {

               min-height:100vh;

               box-sizing:border-box;

               margin:0;

               padding-top:calc(50vh - 6em);

               font:150%/1.6 Baskerville,
Palatino, serif;

}

 

body,
main::before {

               background:url("http://csssecrets.io/images/tiger.jpg")
0 / cover fixed;

}

 

main {

               position:relative;

               margin:0 auto;

               padding:1em;

               max-width:23em;

               background:hsla(0,0%,100%,.25)
border-box;

               overflow:hidden;  //消除扩张影响

               border-radius:.3em;

               box-shadow:0 0 0 1px hsla(0,0%,100%,.3)
inset,

                           0 .5em 1em rgba(0, 0, 0, 0.6);

               text-shadow:0 1px 1px hsla(0,0%,100%,.3);

}

 

main::before {

               content:'';

               position:absolute;

               top:0;right:0;bottom:0;left:0;

               margin:-30px;  //扩大边界

               z-index:-1;

               -webkit-filter:blur(20px);

               filter:blur(20px); //模糊处理

}

 

blockquote {font-style:italic }

blockquote cite {font-style:normal;}

Paste_Image.png

本文整理自《CSS揭秘》,推荐阅读

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容

  • 写在前面的话 上一篇文章对简单滤镜实现有一定的讲解,那么这一篇则是对图像处理更加深层次的说明,对于一张图片怎么处理...
    前世小书童阅读 5,386评论 8 32
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,019评论 4 62
  • 对酒当歌,人生几何! 譬如朝露,去日苦多。 慨当以慷,忧思难忘。 何以解忧?惟有杜康。
    墨海擒龙阅读 306评论 0 0
  • 国庆节的前一天,忽然想起,校园里的桂花开了没有,深呼吸,并没有闻到桂花的味道。往年,不用走到...
    静文思语杨秀明阅读 413评论 0 5
  • 红房子的奶油小方妈妈说有一种魔力能让孩子时的我破涕为笑再不开心的事都能忘记 长大的我不再容易哭泣长大的世界让笑戴上...
    天书阅读 309评论 0 1