使用纯CSS实现一个足球场俯视图的方法

  介绍

这篇文章主要介绍了使用纯CSS实现一个足球场俯视图的方法,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。

效果预览

使用纯CSS实现一个足球场俯视图的方法

源代码下载https://github.com/comehope/front-end-daily-challenges

代码解读

定义dom,容器中包含场地,场地中再包含中线,中点,中圈,禁区,罚球点,罚球弧,球门区,角球区等元素:

& lt; div类=癱ontainer"比;   & lt; div类=癴ield"祝辞   & lt;跨类=癶alfway-line"祝辞& lt;/span>   & lt;跨类=癱entre-circle"祝辞& lt;/span>   & lt;跨类=癱entre-mark"祝辞& lt;/span>   & lt;跨类=皃enalty-area"祝辞& lt;/span>   & lt;跨类=皃enalty-mark"祝辞& lt;/span>   & lt;跨类=皃enalty-arc"祝辞& lt;/span>   & lt;跨类=癵oal-area"祝辞& lt;/span>   & lt;跨类=癱orner-arc"祝辞& lt;/span>   & lt;/div>   & lt;/div>

居中显示:

身体{   保证金:0;   身高:100 vh;   显示:flex;   对齐项目:中心;   justify-content:中心;   背景:径向渐变(黄褐色,栗色);   }

定义容器尺寸:

。容器{   宽度:120 em;   身高:80 em;   背景颜色:绿色;   字体大小:5 px;   }      .container跨度{   显示:块;   }

定义线型:

。容器{   ——线:0.3 em纯白色;   }

画出场地边线:

。容器{   填充:5 em;   }      .field {   宽度:继承;   高度:继承;   边界:var(——线);   }

画出中线:

。中线{   宽度:钙(120 em/2);   身高:80 em;   边境:var(——线);   }

画出中圈:

。字段{   位置:相对;   }      .centre-circle {   宽度:20 em;   高度:20 em;   边界:var(——线);   这个特性:50%;   位置:绝对的;   上图:钙(20 (80 em - em)/2);   左:钙((120 em - 20 em - 0.3 em)/2);   }

画出中点:

。中点{   宽:2 em;   高度:2 em;   背景颜色:白色;   这个特性:50%;   位置:绝对的;   上图:钙(80 em/2 - 1 em);   左:钙(120 em/2 - 1 em + 0.3 em/2);   }

画出禁区:

。禁区{   宽度:18 em;   高度:44 em;   边界:var(——线);   位置:绝对的;   上图:钙((80 em - 44 em)/2);   左:-0.3 em;   }

画出罚球点:

。点球罚球点{   宽:2 em;   高度:2 em;   背景颜色:白色;   这个特性:50%;   位置:绝对的;   上图:钙(80 em/2 - 1 em);   左:钙(12 em - 1 em);   }

画出罚球弧:

。penalty-arc {   宽度:20 em;   高度:20 em;   边界:var(——线);   这个特性:50%;   位置:绝对的;   上图:钙(20 (80 em - em)/2);   左:钙(12 em - 20 em/2);   }

隐藏罚球弧左侧弧线,只留右侧弧线:

。字段{   z - index: 1;   }      .penalty-area {   背景颜色:绿色;   }      .penalty-arc {   z - index: 1;   }

画出球门区:

。球门区{   宽度:6 em;   高度:20 em;   边界:var(——线);   位置:绝对的;   上图:钙(20 (80 em - em)/2);   左:-0.3 em;   }

画出角球区:

。字段{   溢出:隐藏;   }      .corner-arc::,   {后.corner-arc::   内容:& # 39;& # 39;;   位置:绝对的;   宽度:5 em;   身高:5 em;   边界:0.3 em固体白色;   这个特性:50%;   ——抵消:钙(5 em/2 - 0.3 em);   左:var(抵消);   }      {前.corner-arc::   上图:var(抵消);   }      {后.corner-arc::   底部:var(抵消);   }

把dom中的子元素复制出一份,左右两侧各一份:

& lt; div类=癱ontainer"比;   & lt; div类=癴ield"祝辞   & lt; div类=發eft"祝辞   & lt;跨类=癶alfway-line"祝辞& lt;/span>   & lt;跨类=癱entre-circle"祝辞& lt;/span>   & lt;跨类=癱entre-mark"祝辞& lt;/span>   & lt;跨类=皃enalty-area"祝辞& lt;/span>   & lt;跨类=皃enalty-mark"祝辞& lt;/span>   & lt;跨类=皃enalty-arc"祝辞& lt;/span>   & lt;跨类=癵oal-area"祝辞& lt;/span>   & lt;跨类=癱orner-arc"祝辞& lt;/span>   & lt;/div>   & lt; div类=皉ight"祝辞   & lt;跨类=癶alfway-line"祝辞& lt;/span>   & lt;跨类=癱entre-circle"祝辞& lt;/span>   & lt;跨类=癱entre-mark"祝辞& lt;/span>   & lt;跨类=皃enalty-area"祝辞& lt;/span>   & lt;跨类=皃enalty-mark"祝辞& lt;/span>   & lt;跨类=皃enalty-arc"祝辞& lt;/span>   & lt;跨类=癵oal-area"祝辞& lt;/span>   & lt;跨类=癱orner-arc"祝辞& lt;/span>   & lt;/div>   & lt;/div>   & lt;/div>

使用纯CSS实现一个足球场俯视图的方法