「青训营 X 码上掘金」主题创作活动 | 主题一我的名片

137 阅读2分钟

当青训营遇上码上掘金

主题创作背景思路

当我第一次看到这个题目时,便想到了可以使用css的部分较为少见的属性,这样既可以做到耳目一新,也可以去学习css中较为冷门的知识,在查阅资料后,想到了clip-path

clip-path的基本语法

inset

inset() : 定义一个矩形

inset( <length-percentage>{1,4} [ round <border-radius> ]? )

  • 前四个指剪裁位置,top,right,bottom,left
  • 后面两个参数可选,圆角,还有圆角度数。

circle

circle() : 定义一个圆

circle( [ <shape-radius> ]? [ at <position> ]? )

  • 可传入两个可选参数
    • 圆的半径,默认元素宽高中短的那个为直径,支持百分比
    • 圆心位置,默认为元素中心点

ellipse

ellipse() : 定义一个椭圆

ellipse( [ <shape-radius>{2} ]? [ at <position> ]? )

  • 可传入3个可选参数
    • 椭圆的X轴半径,默认是宽度的一半,支持百分比
    • 椭圆的Y轴半径,默认是高度的一半,支持百分比
    • 椭圆中心位置,默认是元素的中心点

polygon

polygon() : 定义一个多边形

polygon( <fill-rule>? , [ <length-percentage> <length-percentage> ]# )

  • 第一个是传入填充规则<fill-rule>可选,表示填充规则用来确定该多边形的内部。可能的值有nonzero和evenodd,默认值是nonzero
  • 后面的每对参数表示多边形的顶点坐标(X,Y),也就是连接点

实现过程

提出问题

最后想的效果是,当鼠标移到名片上的时候,有种推开门的感觉,单纯的矩形过于单调,背景图和推开的部分图片是一致的,然后主题名称缓缓出现,这样我们遇到的问题有:

  1. 使用boder方法实现三角形很难去控制背景图的一致
  2. 文字样式的美化

解决过程

  1. 我们可以使用lip-path:ellipse()定义一个直角梯形,然后两片门重叠在背景图上,这样我们就可以实现背景图的统一了
  2. 文字样式,使用了letter-spacing:;增加文字间距,使用了-webkit-text-stroke:;添加了文字的描边,
  3. 通过调整几个图层的层级,还有透明度,最终给我们一个在山中若隐若现的效果,然后在鼠标移上去出发:hover的之后字体变得明显起来。

效果展示