摘要:文件中增加身體的元素略定義身體的寬度畫出胸部畫出胸前的按鈕畫出肚皮定義胳膊的高度起點胳膊分為肘以上的部分和肘以下的部分。在文件中增加腿的元素略略畫出腿的內側畫出腿的外側至此,完成了右腿。
效果預覽
按下右側的“點擊預覽”按鈕可以在當前頁面預覽,點擊鏈接可以全屏預覽。
https://codepen.io/comehope/pen/ReGRaO
可交互視頻此視頻是可以交互的,你可以隨時暫停視頻,編輯視頻中的代碼。
請用 chrome, safari, edge 打開觀看。
https://scrimba.com/p/pEgDAM/cEJDKSg
源代碼下載每日前端實戰系列的全部源代碼請從 github 下載:
https://github.com/comehope/front-end-daily-challenges
代碼解讀整個人物分為 3 部分:頭、身體、腿,下面按照這個順序分別畫出,先畫頭部。
定義 dom,容器 .baymax 表示大白,head 表示頭部:
居中顯示:
body { margin: 0; height: 100vh; display: flex; align-items: center; justify-content: center; background-color: rgba(176, 0, 0, 0.75); }
定義容器尺寸和子元素對齊方式:
.baymax { width: 30em; height: 41em; font-size: 10px; display: flex; justify-content: center; position: relative; }
畫出頭部輪廓:
.head { position: absolute; width: 9em; height: 6em; background-color: white; border-radius: 50%; box-shadow: inset 0 -1.5em 3em rgba(0, 0, 0, 0.2), 0 0.5em 1.5em rgba(0, 0, 0, 0.2); }
畫出雙眼中間的線條:
.head .eyes { position: absolute; width: 4.8em; height: 0.1em; background-color: #222; top: 2.3em; left: calc((9em - 4.8em) / 2); }
畫出雙眼:
.head .eyes::before, .head .eyes::after { content: ""; position: absolute; width: 0.8em; height: 0.9em; background-color: #222; border-radius: 50%; top: -0.3em; } .head .eyes::after { right: 0; }
接下來畫身體。
html 文件中增加身體的 dom 元素:
定義身體的寬度:
.body { position: absolute; width: inherit; }
畫出胸部:
.body .chest { position: absolute; width: 19em; height: 26em; background-color: white; top: 4em; left: calc((100% - 19em) / 2); border-radius: 50%; z-index: -1; }
畫出胸前的按鈕:
.body .chest .button { position: absolute; width: 2em; height: 2em; background-color: white; border-radius: 50%; top: 4em; right: 4em; box-shadow: inset 0 -0.5em 0.8em rgba(0, 0, 0, 0.15), 0.2em 0.3em 0.2em rgba(0, 0, 0, 0.05); filter: opacity(0.75); }
畫出肚皮:
.body .belly { position: absolute; width: 24em; height: 31em; background-color: white; top: 5.5em; left: calc((100% - 24em) / 2); border-radius: 50%; z-index: -2; box-shadow: inset 0 -2.5em 4em rgba(0, 0, 0, 0.15), 0 0.5em 1.5em rgba(0, 0, 0, 0.25); }
定義胳膊的高度起點:
.body .arm { position: absolute; top: 7.5em; }
胳膊分為肘以上的部分和肘以下的部分。
先設計這兩段的共有屬性:
.body .arm::before, .body .arm::after { content: ""; position: absolute; background-color: white; border-radius: 50%; transform-origin: top; z-index: -3; }
再用偽元素分別畫出這兩部分:
.body .arm::before { width: 9em; height: 20em; left: 7em; transform: rotate(30deg); } .body .arm::after { width: 8em; height: 15em; left: -0.8em; top: 9.5em; transform: rotate(-5deg); box-shadow: inset 0.4em -1em 1em rgba(0, 0, 0, 0.2); }
定義兩根手指的共有屬性:
.body .arm .fingers::before, .body .arm .fingers::after { content: ""; position: absolute; width: 1.8em; height: 4em; background-color: white; border-radius: 50%; transform-origin: top; }
用偽元素分別畫出兩根手指:
.body .arm .fingers::before { top: 22em; left: 2em; transform: rotate(-25deg); box-shadow: inset 0.2em -0.4em 0.4em rgba(0, 0, 0, 0.4); } .body .arm .fingers::after { top: 21.5em; left: 4.8em; transform: rotate(-5deg); box-shadow: inset -0.2em -0.4em 0.8em rgba(0, 0, 0, 0.3); z-index: -3; }
至此,完成了右胳膊。把右胳膊復制并水平翻轉,即可得到左胳膊:
.body .arm.left { transform: scaleX(-1); right: 0; z-index: -3; }
接下來畫腿部。
在 html 文件中增加腿的 dom 元素:
畫出腿的內側:
.leg { position: absolute; width: 5em; height: 16em; bottom: 0; background-color: white; border-bottom-right-radius: 1.5em; left: 10em; box-shadow: inset -0.7em -0.6em 0.7em rgba(0, 0, 0, 0.1); z-index: -3; }
畫出腿的外側:
.leg::before { content: ""; position: absolute; width: 2.5em; height: inherit; background-color: white; border-bottom-left-radius: 100%; left: -2.5em; box-shadow: inset 0.7em 1.5em 0.7em rgba(0, 0, 0, 0.4); }
至此,完成了右腿。把右腿復制并水平翻轉,即可得到左腿:
.leg.left { transform-origin: right; transform: scaleX(-1); }
大功告成!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/53021.html
摘要:文件中增加身體的元素略定義身體的寬度畫出胸部畫出胸前的按鈕畫出肚皮定義胳膊的高度起點胳膊分為肘以上的部分和肘以下的部分。在文件中增加腿的元素略略畫出腿的內側畫出腿的外側至此,完成了右腿。 showImg(https://segmentfault.com/img/bVbhNDx?w=400&h=300); 效果預覽 按下右側的點擊預覽按鈕可以在當前頁面預覽,點擊鏈接可以全屏預覽。 htt...
摘要:過往項目年月份項目匯總共個項目年月份項目匯總共個項目年月份項目匯總共個項目年月份項目匯總共個項目年月份項目匯總共個項目年月份項目匯總共個項目年月至年月發布的項目前端每日實戰專欄每天分解一個前端項目,用視頻記錄編碼過程,再配合詳細的代碼解讀, 過往項目 2018 年 9 月份項目匯總(共 26 個項目) 2018 年 8 月份項目匯總(共 29 個項目) 2018 年 7 月份項目匯總(...
摘要:過往項目年月份項目匯總共個項目年月份項目匯總共個項目年月份項目匯總共個項目年月份發布的項目前端每日實戰專欄每天分解一個前端項目,用視頻記錄編碼過程,再配合詳細的代碼解讀,是學習前端開發的活的參考書視頻演示如何用純創作一臺咖啡機視頻演示如何用 過往項目 2018 年 6 月份項目匯總(共 27 個項目) 2018 年 5 月份項目匯總(共 30 個項目) 2018 年 4 月份項目匯總(...
閱讀 2671·2021-11-25 09:43
閱讀 2579·2021-11-22 09:34
閱讀 2823·2021-11-12 10:34
閱讀 1431·2021-10-20 13:46
閱讀 2300·2019-08-30 13:21
閱讀 929·2019-08-30 11:21
閱讀 483·2019-08-30 11:20
閱讀 2186·2019-08-29 17:20