《前端每日实战》第173号做品:记念篮球巨星科比·布莱恩特

173.png

世事无常,巨星陨落。特以此做品记念篮球巨星科比·布莱恩特。css

效果预览

按下右侧的“点击预览”按钮能够在当前页面预览,点击连接能够全屏预览。html

https://codepen.io/comehope/pen/OJPGGmV前端

源代码下载

每日前端实战系列的所有源代码请从 github 下载:git

https://github.com/comehope/front-end-daily-challengesgithub

代码解读

1、绘制篮球

定义 DOM 结构,只有一个名为 .ball<div> 元素,内含一个篮球图案的 unicode 字符:segmentfault

<div class="ball">🏀</div>

令容器居中,设置页面背景色为由紫色到黑色的径向渐变:网络

body {
    margin: 0;
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background-image: radial-gradient(circle, #542482, black);
}

效果以下图:学习

01.png

设置容器尺寸、字号,放大篮球,这里用 vmin 单位,使图案占据窗口宽高的一半:flex

.ball {
    width: 50vmin;
    height: 50vmin;
    font-size: 50vmin;
    line-height: 1em;
}

效果以下图:spa

02.png

2、绘制光环

::before 伪元素绘制光环容器,比主元素宽20%,但高度只有主元素的30%,形状为一个矩形,边框为橙色:

.ball {
    position: relative;
}

.ball::before {
    content: '';
    position: absolute;
    width: 120%;
    height: 30%;
    left: -10%;
    top: -20%;
    border: 2vmin solid orange;
    box-sizing: border-box;
}

效果以下图:

03.png

为边框加圆角,使光环变圆:

.ball::before {
    border-radius: 50%;
}

效果以下图:

04.png

为光环加上光晕,光晕的颜色是半透明的黄色:

.ball::before {
    box-shadow: 0 0 0.1em hsla(60, 100%, 50%, 0.5);
}

效果以下图:

05.png

3、绘制光晕

接下来用 ::after 伪元素绘制阴影,阴影与主元素等宽,但高只有主元素的20%,定位到主元素的底部,背景色为半透明的黑色:

.ball::after {
    content: '';
    position: absolute;
    width: 100%;
    height: 20%;
    left: 0;
    bottom: 0;
    background-color: hsla(0, 0%, 0%, 0.6);
}

效果以下图:

06.png

为阴影容器加圆角属性使阴影变圆,并将阴影置于篮球后面:

.ball::after {
    border-radius: 50%;
    z-index: -1;
}

效果以下图:

07.png

大功告成!

参考

  • 径向渐变背景,《CSS3 艺术》第4.3节
  • 阴影,《CSS3 艺术》第5.1.1节
  • 主元素与伪元素的重叠关系,《CSS3 艺术》第1.9.3节

关于我、个人专栏和个人书

张偶,网络笔名 @comehope,20世纪末触网,被 Web 的无穷魅力所俘获,自此始终战斗在 Web 开发第一线。

《前端每日实战》专栏,是我近年来实践 PBL(project-based learning)方法的结果,以项目驱动学习,展示从灵感闪现到代码实现的完整过程,亦可做为前端开发的练手习题和开发参考。

拙做《CSS3 艺术》一书于2020年1月由人民邮电出版社出版,全彩印刷,使用100多个生动美观的实例,系统地剖析了 CSS 与视觉效果相关的重要语法,并含有近10小时的视频演示。京东/天猫/当当有售。配套资源请访问人民邮电出版社公众号:https://mp.weixin.qq.com/s/6X42QkZ5N8JNji8aQ2FFcQ

相关文章
相关标签/搜索