一、學習經歷
進入大學不久,就加入了社團,從而對前端有了一個初步的瞭解,之後也做過一些學校的官網,積累了一些微小的經驗。
到了大二的時候,學校開設了專門的html+css課程,從中也學到許多新的html,css知識,也學到了如何規範的編寫程式碼。但由於個人的懶散,兩年半的時間大多是渾渾噩噩的度過,到頭來並未學到太多有深度的知識。
再之後,通過專業老師的指導,開始進行前端知識的全面及系統性的學習。而這篇文章便是對這次學習的一次階段性總結。
二、學習感受
細枝末節,一點一滴的積累
聽專業老師講課,最明顯的一點感受,就是他會提出一些特別的方法,用最簡單的屬性來實現你想要的效果。
例如 呼吸燈 案例。
在我看到這個案例時,第一想法當然是將 div 設定為 border-rudios:50% 的圓形容器,兩個一巢狀,再通過animation 或 js 來控制動畫就完事了。
<body>
<div class="container">
<!-- 正方形,呼吸燈的容器 -->
<div class="rec">
<div class="outer_circle">
<div class="inner_circle">
</div>
</div>
</div>
<!-- 資料資訊顯示 -->
<div class="info">
HI
</div>
</div>
</body>
然而,老師卻提了一個問題,如何控制寬高相等?————當然是設定固定寬高了! 老師又問,有沒有別的比較簡單的方法呢?————當然是有的啊!老師這樣問,那當然是有的吧:)然而我那榆木腦袋卻是想不出個什麼方案出來。
子元素對於父元素有繼承關係,其寬度預設填充父元素寬度,此時,諾是將父元素設為正方形,使子元素高度為100%,那麼子元素是不是必然也是一個正方形?再通過父元素的 padding 屬性來控制子元素的大小,這樣豈不是很方便?當然,前提得將 div 設定為 邊框盒子(box-sizing:border-box)。
<style>
.container {
width: 230px;
height: 330px;
background-color: #343434;
margin: 0 auto;
}
.rec {
height: 230px;
box-sizing: border-box;/*邊框盒子,外圓是被擠出的*/
padding: 34px;
}
.rec > .outer_circle {
box-sizing: border-box;
height: 100%;
border:6px solid #999;
border-radius: 50%;
padding: 10px;
}
.rec > .outer_circle > .inner_circle {
box-sizing: border-box;
height: 100%;
border:16px solid #fff;
border-radius: 50%;
}
.info {
color: #fff;
text-align: center;
padding: 1em 0;
}
</style>
原來 padding 還可以控制子元素的大小!在這之前,我僅用它進行定位而已。
後來,我又學到,在容器(邊框盒子)寬度不固定時,如何使其成為一個正方形(在練習手機音樂播放介面時)。
width: 50%;
height: 0;
padding-bottom: 50%;
在父元素寬高不固定時,通過 padding-bottom 使得容器高度與寬度一致,從而製作成圓。
總結
如上所說的關於 padding 知識,都是對基本屬性及知識點熟練掌握之後便可以較為容易想到的,可見那些基礎知識點是多麼的重要。
希望之後自己能多注重基礎知識的積累,並將其融匯貫通。
html+css 的學習並不是太難,也可以說是很容易,但千里之行,這才剛剛開始,熟練的掌握 css,還需要不斷的練習。