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

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

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

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

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

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

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

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

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

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

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

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

真·交叉学科大佬。

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

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

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

绘制过程

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

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

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

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

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

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

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

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

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绘制人物的脖子也是类似的过程。

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

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

1、边界半径(border-radius)

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

border-radius: 15px 10px 40px 30px / 40px 10px 15px 30px;

2、盒子阴影(box-shadow)

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

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

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

3、变形(transform)

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

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

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

transform: perspective(10px) rotateY(5deg);

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

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

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

5、层叠(overflow)

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

overflow: hidden;

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

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

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

只适用于Chrome

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

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

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

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

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

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

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

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

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

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

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

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

连人种都变了啊!

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

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

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

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

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

反向绘图

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

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

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

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

传送门:

作者的GitHub:
https://github.com/cyanharlow

作者博客主页:
https://diana-adrianne.com/

教程:
https://css-tricks.com/solving-lifes-problems-with-css/

用质数生成任意ASCII艺术:
https://github.com/geonnave/primg

▌现代编程语言大 PK,2020 年开发者关心的七大编程语言!

▌2019年增代码 12.9 亿行,每天完成需求近 4000 个,鹅厂程序员秘密大爆料!

▌同时拿到了Google和阿里的offer,纠结去哪个?

▌TIOBE 发布 3 月编程语言榜单:Go 冲进前十,Delphi 没落

代码变油画,精细到毛发,这个前端小姐姐只用HTML+CSS,让美术设计也惊叹丨GitHub热榜相关推荐

  1. 代码变油画,精细到毛发,这个前端小姐姐只用HTML+CSS,让美术设计也惊叹丨GitHub热榜...

    晓查 郭一璞 发自 凹非寺  量子位 报道 | 公众号 QbitAI HTML不是编程语言,但这并不妨碍精通它的大佬玩出花来. 普通的前端,用HTML+CSS制作网页,元素简单,工具丰富. 大佬级前端 ...

  2. 面试一位硕士海龟前端小姐姐有感

    写在开始 故事发生在最近 于是回忆得很清楚 简历介绍 本硕都是计算机,硕士出国留学 毕业后没有从事计算机工作,后又转做前端一年多 求职中级前端工程师(毕业五年) 分析 职级跟工作年限不匹配,5年这种背 ...

  3. 网页设计作业 开心网旅游(11页) web前端期末大作业 html+css+javascript网页设计实例

    HTML5期末大作业:旅行网站设计--开心网旅游(11页) web前端期末大作业 html+css+javascript网页设计实例 常见网页设计作业题材有 个人. 美食. 公司. 学校. 旅游. 电 ...

  4. 一个在校的普通前端小姐姐的2021

    大家好,我是若川.这是我的源码共读群里一个大三的前端小姐姐(小曹同学)的年度总结.她写了5篇源码笔记.同时做了很多项目,获得了很多奖.而且策划和建立了学校工作室的前端训练营,40+人报名参加.总之就是 ...

  5. HTML5期末大作业:漫画网站设计——海贼王我当定了(6页) web前端期末大作业 html+css+javascript网页设计实例 企业网站制作 计算机毕设网页设计源码

    HTML5期末大作业:漫画网站设计--海贼王我当定了(6页) web前端期末大作业 html+css+javascript网页设计实例 企业网站制作 计算机毕设网页设计源码 常见网页设计作业题材有 个 ...

  6. HTML5期末大作业:旅行网站设计——开心网旅游(11页) web前端期末大作业 html+css+javascript网页设计实例

    HTML5期末大作业:旅行网站设计--开心网旅游(11页) web前端期末大作业 html+css+javascript网页设计实例 常见网页设计作业题材有 个人. 美食. 公司. 学校. 旅游. 电 ...

  7. 培养前端小姐姐的八个小技巧

    写在开头 在工作中,当你担任前端专业线负责人,或者小技术leader时,就要承担培养人的责任,这也是为身边的小伙伴负责 本文并不只针对前端小姐姐,也针对前端小哥哥 由于本人精力有限,平时微信上问我:x ...

  8. css网页设计作业_小姐姐用 HTML + CSS 画油画?谁能想到前端还有这么一手操作!...

    GitHub 项目上好项目真的很多,但作者长的这么漂亮的肯定屈指可数了. 用 HTML + CSS 画油画 如图所示,这位小姐姐的名字叫 Diana Smith ,在她的个人博客上介绍自己是一位 Ja ...

  9. GitHub 热榜:歪果小姐姐教你用纯代码画画,真细腻!

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 转自量子位 HTML 不是编程语言,但这并不妨碍精通它的大佬玩出花来. 普通的前端,用 ...

最新文章

  1. Java中的访问权限
  2. Django横向二级导航栏(鼠标悬空事件)
  3. python 迭代器相关知识
  4. 拜登签署行政令,要求保护美国关键供应链(含信息技术)的安全
  5. 一种H.264高清视频的无参考视频质量评价算法(基于QP和跳过宏块数)
  6. 开发一个手游需要的工种
  7. 【渝粤教育】国家开放大学2018年春季 0267-21T摄影技术 参考试题
  8. a标签传值到另一个页面_用大头儿子和小头爸爸举例,就讲明白 vue 中父子组件的传值? | 原力计划...
  9. 【建站教程】如何快速搭建自己独立的个人博客?
  10. 华为HCIE之TS部分整理
  11. C#调用谷歌翻译API
  12. MySQL主从复制以及会出现的幺蛾子问题、解决方法
  13. 联想笔记本y430p加固态硬盘/ssd(M.2)
  14. vpu测试_单独编译IMX6Q的VPU示例程序:mxc_vpu_test.out
  15. 使用神器you-get获取萧大bilibili课程视频
  16. ae制h5文字动画_7款超华丽的HTML5 Canvas文字动画特效
  17. Hadoop之HDFS常见面试题
  18. AutoCAD 删除集合对象中的成员
  19. 普通本科生面试总结以及在校编程经历
  20. Android~记录material.tabs.TabLayout一个bug

热门文章

  1. copy语法 postgre_PostgreSQL copy 命令教程详解
  2. 微信推出QQ小程序,吞并or反奶?【乐搏TestPRO】
  3. scala编程初级实践
  4. 2016年全国职称计算机应用能力考试各省市报名入口
  5. 关于字符型变量和整型变量相互转换的问题
  6. Qt问题集锦:启动界面太大,超出桌面,或进入任务栏
  7. GoodNotes5下载之使用教程
  8. 历途机器人给大家拜年喽
  9. 第十三届蓝桥杯(web组),第五题【页面布局】制作网站首页
  10. 2023-2029全球炉灶行业调研及趋势分析报告