打造網頁版「大白」
本課程由BigGod發布在實驗樓,完整教程及在線練習地址:Web - 打造網頁版「大白」
一、實驗介紹
1. 環境介紹
本實驗環境採用帶桌面的 Ubuntu Linux 環境,實驗中可能會用到桌面上的程序:
- Firefox:瀏覽器,可以用在需要前端界面的課程里,只需要打開環境里寫的 HTML/JS 頁面即可;
- GVim:非常好用的編輯器,最簡單的用法可以參考課程 Vim編輯器。
2. 實驗說明
還記得《超能陸戰隊》里的 「暖男」 -「大白」 么?是不是很想擁有一個?
沒問題!今天我們就利用 HTML 和 CSS 來打造自己的「大白」!
PS:您最好對 HTML 和 CSS 有一定的了解,但如果你是小白也沒關係,小白見「大白」也是可以的!
二、準備工作
進入到 /home/shiyanlou/ 目錄下,新建空白文檔:
命名為 Baymax.html (其它名字也可以,但後綴名必須是 .html):n使用 gedit 打開,準備編輯代碼:n填寫以下代碼:
<!doctype html>n<html>nn<head>n<meta charset="utf-8">n<title>Baymax</title>n</head>nn<body>n <div id="baymax">nn <!-- 定義頭部,包括兩個眼睛、嘴 -->n <div id="head">n <div id="eye"></div>n <div id="eye2"></div>n <div id="mouth"></div>n </div>nn <!-- 定義軀幹,包括心臟 -->n <div id="torso">n <div id="heart"></div>n </div>nn <!-- 定義肚子腹部,包括 cover(和軀幹的連接處) -->n <div id="belly">n <div id="cover"></div>n </div>nn <!-- 定義左臂,包括一大一小兩個手指 -->n <div id="left-arm">n <div id="l-bigfinger"></div>n <div id="l-smallfinger"></div>n </div>nn <!-- 定義右臂,同樣包括一大一小兩個手指 -->n <div id="right-arm">n <div id="r-bigfinger"></div>n <div id="r-smallfinger"></div>n </div>nn <!-- 定義左腿 -->n <div id="left-leg"></div>nn <!-- 定義右腿 -->n <div id="right-leg"></div>nn </div>n</body>nn</html>n
四、添加 CSS 樣式
我們已經使用 HTML 定義好「大白」的各個元素,現在就需要利用到 CSS 來繪製它的樣式外表。
由於「大白」是白色的,為了更容易辨識,我們把背景設為深色。然後首先是頭部:
<style>nnbody {n background: #595959;n}nn#baymax {nn /*設置為 居中*/n margin: 0 auto;nn /*高度*/n height: 600px;nn /*隱藏溢出*/n overflow: hidden;n}nn#head {n height: 64px;n width: 100px;nn /*以百分比定義圓角的形狀*/n border-radius: 50%;nn /*背景*/n background: #fff;nn margin: 0 auto;n margin-bottom: -20px;nn /*設置下邊框的樣式*/n border-bottom: 5px solid #e0e0e0;nn /*屬性設置元素的堆疊順序;n 擁有更高堆疊順序的元素總是會處於堆疊順序較低的元素的前面*/n z-index: 100;nn /*生成相對定位的元素*/n position: relative;n}n</style>n
效果預覽:
#eye,n#eye2 {n width: 11px;n height: 13px;n background: #282828;n border-radius: 50%;n position: relative;n top: 30px;n left: 27px;nn /*旋轉該元素*/n transform: rotate(8deg);n}nn#eye2 {nn /*使其旋轉對稱*/n transform: rotate(-8deg);n left: 69px;n top: 17px;nn}nn#mouth {n width: 38px;n height: 1.5px;n background: #282828;n position: relative;n left: 34px;n top: 10px;n}n
一個 mini 的「大白」,雛形初現:
接下來是軀幹和腹部:n
#torso,n#belly {n margin: 0 auto;n height: 200px;n width: 180px;n background: #fff;n border-radius: 47%;nn /*設置邊框*/n border: 5px solid #e0e0e0;n border-top: none;n z-index: 1;n}nn#belly {n height: 300px;n width: 245px;n margin-top: -140px;n z-index: 5;n}nn#cover {n width: 190px;n background: #fff;n height: 150px;n margin: 0 auto;n position: relative;n top: -20px;n border-radius: 50%;n}n
賦予「大白」象徵生命的心臟:
#heart{n width:25px; n height:25px; n border-radius:50%; n position:relative; nn /*向邊框四周添加陰影效果*/n box-shadow:2px 5px 2px #ccc inset; nn right:-115px; n top:40px; n z-index:111; n border:1px solid #ccc;n}n
現在的「大白」是這個樣子的了:
還沒有手和腳,怪萌怪萌的...「大白」需要溫暖的手臂:n#left-arm,n#right-arm {n height: 270px;n width: 120px;n border-radius: 50%;n background: #fff;n margin: 0 auto;n position: relative;n top: -350px;n left: -100px;n transform: rotate(20deg);n z-index: -1;n}nn#right-arm {n transform: rotate(-20deg);n left: 100px;n top: -620px;n}n
還沒有手指頭呢:
#l-bigfinger,n#r-bigfinger {n height: 50px;n width: 20px;n border-radius: 50%;n background: #fff;n position: relative;n top: 250px;n left: 50px;n transform: rotate(-50deg);n}nn#r-bigfinger {n left: 50px;n transform: rotate(50deg);n}nn#l-smallfinger,n#r-smallfinger {n height: 35px;n width: 15px;n border-radius: 50%;n background: #fff;n position: relative;n top: 195px;n left: 66px;n transform: rotate(-40deg);n}nn#r-smallfinger {n background: #fff;n transform: rotate(40deg);n top: 195px;n left: 37px;n}n
有點意思了:
迫不及待要給「大白」加上腿了吧:n#left-leg,n#right-leg {n height: 170px;n width: 90px;n border-radius: 40% 30% 10px 45%;n background: #fff;n position: relative;n top: -640px;n left: -45px;n transform: rotate(-1deg);n z-index: -2;n margin: 0 auto;n}nn#right-leg {n background: #fff;n border-radius:30% 40% 45% 10px;n margin: 0 auto;n top: -810px;n left: 50px;n transform: rotate(1deg);n}n
duang~ duang~ duang~ 特技完成!n
五、小結n據說妹紙們對「大白」毫無抵抗力,漢紙們還不學起來!(我只能幫你到這兒了...)
但是如果你們贊得多,我就再教你一招:讓「大白」對你眨(fang)眼(dian)!就看你們給力不給力了...
本項目完整代碼可在實驗樓中查看,立即【開始實驗】。
更多Python經典項目:Python全部 - 課程
六、參考
- Baymax
推薦閱讀:
※零基礎開始學 Web 前端開發,有什麼建議嗎?
※如果我們能從頭開始,web編程會是什麼樣子?
※請各位大神支招,零基礎想學web編程,怎麼能既省錢又能學到技術? ?
※V8引擎是如何為JS中的函數分配地址(或任意除了函數名外能夠標識函數的變數)的?