atom 代码都是白色 怎么显示颜色_歪果小姐姐教你用html代码画画,这是真大佬!...

博客分享了前端大佬Diana Smith如何仅用HTML和CSS,创造出细腻复杂的艺术图像,包括古典肖像、现代人物等,展示了CSS的强大表现力和跨学科的艺术创作。教程详细介绍了使用CSS技巧如边框半径、盒阴影、变形和渐变等实现绘画效果的过程。
摘要由CSDN通过智能技术生成

HTML不是编程语言,但这并不妨碍精通它的大佬玩出花来。

普通的前端,用HTML+CSS制作网页,元素简单,工具丰富。

大佬级前端,用HTML+CSS绘画,全程不用PS、AI这种图形化的图片编辑器,单纯敲一行行代码纯手工绘制。

4f2afe5033e90b94e5e86342582774ef.png

把代码转换之后,就变成了鲜嫩的水果:

2864a22f0a4f2cd79cdfe5668be478e0.png

或者画出洛可可风格的古典女性肖像:

fe22200b425b5def0217ef00bfba73fe.png

还有弗拉芒巴洛克肖像风格的人物画像,充满了中世纪的禁欲感:

c736839feb33676a20ff37815da54795.png

现代的也有,比如这位在粉色灯光下的着礼服的妹子:

430d66a557c422088b2dc6691bfedfd8.png

以及充满着50年代气息的复古风人物海报:

8f7ce0e808391770bac33fec61811e20.png

曲线、光影、渐变,每个元素都相当复杂。

而且,创作过程中不用SVG,只用Atom文本编辑器和Chrome开发者工具。

也就是说,画面上的每一条曲线和渐变、每一处高光和阴影、每一根头发和睫毛、每一片蕾丝和褶皱,都是一行行代码从头敲出来的!

如此精细程度和创造力,让学美术的网友感叹“学画画不如写代码”,让学计算机的同学觉得“别人写的这么艺术,一定是我的教科书打开方式不对”。

真·交叉学科大佬。

这个项目也一度登上了GitHub Trending排行榜第二名:

ad35be711623b8502df64d5583c9cbb8.png

并且Issues里都是诸多用户的膜拜:厉害!崇拜!太棒了!

40fc7863856b53c4859c48b474b56af2.png

它们的作者,是湾区前端大神Diana Smith小姐姐,她目前是企业及软件开发商Atlassian的一名资深Web开发。

b8b2bd15ede004ea85fab63f8b7c867b.png

绘制过程

Diana在专门讨论CSS的网站CSS-Tricks写下了详细的教程。

画出这样一个图形分成几步?

df4c47d57f9c411ec3fa042905e6119d.png

如果不用CSS,一般都是直接嵌入这个特殊的图形。

如果用CSS,那么就从黑色矩形开始,然后在两侧加上上两个

与白色背景颜色匹配的边框半径元素。

47c94a38ba59b36f5921031c4b253c21.png

先画出一个黑色矩形,然后两边用圆弧遮挡。有了基础形状后,下一步就是给它添上渐变的背景。但是如果用矩形方式填充,得到的效果就是这样的:

1659b0450172b91522792a26ff65f1bc.png

Diana的办法是:在保留矩形的同时,加上两个弯曲的div,把凹进去的部分也填充上。

9f2dfc3e0fe1974bcb8fe30a9d547fce.png

最后完整的代码是这样的:

div{  width: 500px;  height: 350px;  background: #000;  position: relative;  &::after, &::before{    width: 20%;    height: 100%;        position: absolute;    top: 0;    z-index:2;    content: "";        background: #1e5799; background: -moz-linear-gradient(top, #1e5799 0%, #7db9e8 100%); background: -webkit-linear-gradient(top, #1e5799 0%,#7db9e8 100%);background: linear-gradient(to bottom, #1e5799 0%,#7db9e8 100%); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1e5799', endColorstr='#7db9e8',GradientType=0 );   }  &::after{    border-radius: 100% 0% 0% 100%;       right: 0;  }  &::before{    border-radius: 0 100% 100% 0;       left: 0;  }   }body{  background: #1e5799; background: -moz-linear-gradient(top, #1e5799 0%, #7db9e8 100%); background: -webkit-linear-gradient(top, #1e5799 0%,#7db9e8 100%); background: linear-gradient(to bottom, #1e5799 0%,#7db9e8 100%); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1e5799', endColorstr='#7db9e8',GradientType=0 ); }

你也可以去这个完成查看CSS样式的实际运行效果:

https://codepen.io/jean-jordan/pen/KeKaBw

刚刚我们画的那幅画像不像人的脖子?好的,我们再回到人像画上,Diana绘制人物的脖子也是类似的过程。

a91b0925b97803f761462448caeef2d8.png

在上面这张图里,我们看到了Diana如何逐步改形状,最终得到了油画中人物的脖子。

但是仅仅会画各种几何形状,是无法生成艺术品的,Diana总结了她在绘图中的5个重要CSS属性。

1、边界半径(border-radius)

边界半径是为了让矩形的边角过渡得更自然,对于大多数网页开发者来说,只需一个参数border-radius,可以设定不同的半径数值。

border-radius: 15px 10px 40px 30px / 40px 10px 15px 30px;
19a301aec472889b7983836a691ad90e.png

2、盒子阴影(box-shadow)

对多个盒子阴影进行分层是增加深度的最佳方法之一。框阴影将粘附到html容器的边缘,也会沿着边界半径定义的边缘。

box-shadow: 6px -11px 20px 1px red, -15px -15px 5px -10px blue, inset 5px 5px 35px 10px green;
c505d7f3dc8aae13f726cdbe367fed82.png

开发者可以指定模糊半径,以及阴影是向内延伸还是向外延伸。

3、变形(transform)

变形的主要方式有:旋转(rotate)、缩放(scale)和倾斜(skew)

transform: rotate(-45deg)transform: scale(0.7, 1.3)transform: skew(25deg, 30deg);
2b1eca3b8cffa86d2862d12699cb9a04.png

此外还有透视,让物体产生远小近大的视觉效果,或者是仅仅为画出一个梯形。

transform: perspective(10px) rotateY(5deg);
13f4b9767086f1e36928f901b531e19c.png

4、线性梯度(linear-gradient)和径向梯度(radial-gradient)

线性梯度用于定义一个方向上的渐变效果,径向梯度用于定义圆和椭圆形的渐变效果

background-image: linear-gradient(0deg, blue, transparent 60%),radial-gradient(circle at 70% 30%, purple, transparent 40%);
ce771d48588700e84bfd16bf9bc5c960.png

5、层叠(overflow)

层叠是一种将大量杂乱元素填充到一个整齐的包中的方法,可以创建一些有趣的形状。在变形那部分的基础上使用hidden参数,可以把边缘遮盖起来。

overflow: hidden;
7b1604d7c7fff2da9aed6dd0d130667a.png

以上5种元素缺一不可,随便少一种都会产生怪异的效果。

f7a9d3799d67a1b5ea30e992ec01d6fc.png
从左至右分别是缺少边界半径、阴影、变形、梯度、层叠的效果(点击查看大图)

不过即使这样,也很有抽象艺术的美感,仿佛在看毕加索的作品。

只适用于Chrome

不过,由于这是一个纯个人艺术创作,Diana小姐姐并不关心浏览器适配性。

因此,这些代码在Chrome里可以完美展现,但如果用其他浏览器打开,可能就会出现不一样的效果。

比如,MAC上的Safari浏览器打开,妹子的眼睛就方了:

58c367187f837d4e3b6e92f407e03ba6.png

肩膀上的高光,变成了一个大圈圈:

8549372f57fb0f994dbe742a57051466.png

胸前的礼服上,也被泼了一道墨:

0fedff3306f8acc8361611851b385d5b.png

如果用早期的Chrome打开,会出现惊悚的头身分离的效果:

ffc44ef41cb1520cf834d9086fa8f6c6.png

早期的Opera浏览器,打开之后脸方了:

ccb9a484889e1cbab0364c289f0de97c.png

Windows 7上从IE 6到IE 11,显示出来的都是这个鬼样子:

41fc69df387104a5aed1bd5e473f647b.png

浓重的线条,甚至有点抽象艺术的感觉。

同样是早期IE,放到Mac上也一样鬼畜,这是IE 5.1.7的效果:

91826eeceb6b5f67316907d21e6908a6.png

还有人试了试,在Windows 98系统的IE 7浏览器打开,会变成非常像素风的样子:

99f2811674119cd597ba594105d8b7c4.png

最恐怖的是三星手机上的夜间模式打开:

b84e73d8bc58c4cd4c2b1fc75bf4137e.png

连人种都变了啊!

其他的几张画,换个浏览器打开也比较鬼畜。

2d97a4510c53b5083fc8843e243fd589.png

妹子你bra里的钢圈出来了啊!

5d8f4ce970f5d9cdcab381948415884f.png

拉夫领变得透明而有光泽,领口的蕾丝干脆断掉了,仿佛是逃难时期的肖像画。

最后,如果你在iPhone上装了Chrome,出来的也是Safari的效果,想看完整效果的话,请在安卓手机或者电脑的Chrome上打开。

因此,有不少网友都觉得,这几幅画可以当成浏览器测试项目,一试就能知道内核用的是谁家的。

反向绘图

CSS太难,学不会?不要紧,虽然我们不能把代码变成图片,但是可以把图片变成代码啊。

没错,就是ASCII艺术,早在DOS时期,就有人用命令行界面来显示图片。直到今天已成为一种流行的互联网文化。

e0df7f3a7a8e9fb246fae78e46f567c3.png

用单色字符来画出世界名画已经不算新鲜事。最近又有个码农开发了一个新的项目Primg,让任何一幅画都可以用质数来表示。

比如蒙拉丽莎,就可以用一个3万位的质数二进制方式绘制出来。

91910a874611704e4f00c0efa13dc21b.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值