前端日常实践:64#视频演示如何使用纯CSS绘制足球场
时间:2023-04-05 21:26:28
HTML5
效果预览点击右侧“点击预览”按钮可在当前页面预览,点击链接可全屏预览.https://codepen.io/comehop??e/pen/BVqXwJ互动视频本视频为互动视频,您可以随时暂停视频,编辑视频中的代码。请使用chrome、safari、edge打开观看。https://scrimba.com/p/pEgDAM/cKbw4Tg源码下载日常前端实战系列完整源码请到github下载:https://github.com/comehop??e/front-end-daily-challenges代码解释定义dom,容器包含场地,场地包含中线、中点、中圈、禁区、禁区、禁区弧、球门区、角区等元素:
中心显示:body{margin:0;高度:100vh;显示:弹性;对齐项目:居中;证明内容:居中;background:radial-gradient(sandybrown,maroon);}定义容器尺寸:.container{width:120em;高度:80em;背景色:绿色;字体大小:5px;}.containerspan{display:block;}定义线型:.container{--line:0.3emsolidwhite;}画域边框:.container{padding:5em;}.field{width:inherit;身高:继承;border:var(--line);}绘制中间线:.halfway-line{width:calc(120em/2);高度:80em;border-right:var(--line);}画中间的圆:.field{position:relative;}.centre-circle{width:20em;高度:20em;边框:var(--line);边界半径:50%;位置:绝对;顶部:计算((80em-20em)/2);left:calc((120em-20em-0.3em)/2);}绘制中心点:.centre-mark{width:2em;高度:2em;背景色:白色;边界半径:50%;位置:绝对;顶部:计算(80em/2-1em);left:calc(120em/2-1em+0.3em/2);}绘制禁区:.penalty-area{width:18em;高度:44em;边框:var(--line);位置:绝对;顶部:计算((80em-44em)/2);left:-0.3em;}绘制罚分标记:.penalty-mark{width:2em;高度:2em;背景色:白色;边界-半径:50%;位置:绝对;顶部:计算(80em/2-1em);left:calc(12em-1em);}绘制惩罚弧:.penalty-arc{width:20em;高度:20em;边框:var(--line);边界半径:50%;位置:绝对;顶部:计算((80em-20em)/2);left:calc(12em-20em/2);}隐藏罚球弧leftarc,只留右弧:.field{z-index:1;}.penalty-area{background-color:green;}.penalty-arc{z-index:-1;}绘制目标区域:.goal-area{width:6em;高度:20em;边框:var(--line);位置:绝对;顶部:计算((80em-20em)/2);left:-0.3em;}画角区域:.字段{溢出:隐藏;}.corner-arc::before,.corner-arc::after{content:'';位置:绝对;宽度:5em;高度:5em;边框:0.3em纯白色;:50%;--offset:计算(-5em/2-0.3em);left:var(--offset);}.corner-arc::before{top:var(--offset);}.corner-arc::after{bottom:var(--offset);}复制一份dom中的子元素,每一侧一个:
<divclass="field">