網址:
https://judyyutong.github.io/my-projects/breakFrame.html
https://www.youtube.com/watch?v=l-sQNXNrw3s&list=PLqivELodHt3hxeuLX8PYaI8u1GcDaBoJo&t=279s
因為已設基底容器wrap寬1200px,內層三個item若平分寬度則每個400px,但追加設定item外距margin左右各15px,則每個item實際寬度必須內縮15x2=30px,不然會超出wrap總寬度,所以item寬度修改為400-30=370px
https://youtu.be/l-sQNXNrw3s?list=PLqivELodHt3hxeuLX8PYaI8u1GcDaBoJo&t=412
讓整個畫面元素放到瀏覽器頁面正中間,
【關於滾動條的筆記】
margin是往外增生,所以如果已經先css歸零,然後html和body都設定100%,但是現在卻有個div設定margin-top:50px,那麼這個上方外距等於是向上方外面長出極限,畫面塞不下了,所以會出現滾動條。
如果不想要出現滾動條,就要在body的高度上面扣除這個margin-top的數值:
如果不想要滾動條,另一個邏輯的解套方式,就是讓間距往內長,也就是改用padding取代margin。這樣body不用特別減去數值,而長出來的原訂正方形藍色box則會因為受到padding影響而看起來變成50+30=80px高與寬30px的直向長方形。
https://www.youtube.com/watch?v=l-sQNXNrw3s&list=PLqivELodHt3hxeuLX8PYaI8u1GcDaBoJo&t=516s
破格生出,給予.icon
容器margin-top
負值「-75px」則.icon
容器就會往上凸出.item
,產生破格畫面。
https://youtu.be/l-sQNXNrw3s?list=PLqivELodHt3hxeuLX8PYaI8u1GcDaBoJo&t=602
特殊class的icon是被視為「文字」,所以控制大小要用font-size
https://www.youtube.com/watch?v=l-sQNXNrw3s&list=PLqivELodHt3hxeuLX8PYaI8u1GcDaBoJo&t=621s
line-height可以用來作為當行文字的垂直居中
icon的height是150px時,line-height也同樣設定150px,
在icon裡面的「文字型圖示」就會居中。
https://youtu.be/l-sQNXNrw3s?list=PLqivELodHt3hxeuLX8PYaI8u1GcDaBoJo&t=632
當容器本身是長寬等高的正方形時,width:150px;height:150px
圓角設一半border-radius:50%;
,容器就會變成正圓。
https://www.youtube.com/watch?v=l-sQNXNrw3s&list=PLqivELodHt3hxeuLX8PYaI8u1GcDaBoJo&t=765s
偽元素:before的絕對定位與相對定位,
希望.icon:before
時,產生一個和icon等寬等高的「方框」,除了設定width:100%
和height:100%
,還得指定「絕對定位」,並且類比於父子層定位邏輯,必須給還沒有加上:before
時的.icon
設定「相對定位」,這樣這個「:before方框」才知道自己必須依據.icon
抓到自己的位置。
為了讓「:before框」居中於「icon容器本身」,就要設定「:before框」「左邊緣」與「上邊緣」距離「icon容器本身」為0,讓兩者相疊,就像取左上角歸零的概念,但因為東西是放在容器內,所以會從「邊框」開始計算,border
也會佔地盤,因此還要「扣除」邊框線的寬度10px
,這樣left
與top
對位才會真正歸零,讓.icon
和.icon:before
彼此置中。
因此要設定
https://ithelp.ithome.com.tw/articles/10253814?sc=iThomeR
Top 、Right 、Bottom 、Left 4個 CSS 屬性是搭配 position 一起使用的,倘若沒有 position 的話,這4個屬性是不會有作用的。此外 Top 、Right 、Bottom 、Left 這 4個屬性僅需設定一個值。基本上水平軸只要設定一個屬性,垂直軸也只要設定一個屬性即可。
https://youtu.be/l-sQNXNrw3s?list=PLqivELodHt3hxeuLX8PYaI8u1GcDaBoJo&t=852
border-top和border-left框線顏色指定為透明transparent,則看到圓圈的左下圈段看不見了,之後再使用transform讓「:before框」圈段「逆時針」轉45度,也就是指定rotate(-45deg),就會得到一個正坐的的上半圓。
https://www.youtube.com/watch?v=l-sQNXNrw3s&list=PLqivELodHt3hxeuLX8PYaI8u1GcDaBoJo&t=897s
https://www.youtube.com/watch?v=l-sQNXNrw3s&t=907s
上半圓凸出去了
版面實際佔有的區塊應該是灰色wrap
那塊,還沒有算進包含半圓形的那一區,這樣版面計算會有問題,應該要算包含計算才正確。
這個圓形屬於.icon:before
,直徑等同.icon
的寬高,而.icon
是寬高皆為150px的正方形,表示.icon:before
的半圓高度是75px,也就是凸出父層wraper
75px,那就再把wraper
補回去75px,這樣在專案中計算版面尺寸分配時才會是清楚,誰包裹誰很清楚,不會包了結果又凸出去變成沒有包到。版面的層遞關係乾淨。
https://www.youtube.com/watch?v=l-sQNXNrw3s&list=PLqivELodHt3hxeuLX8PYaI8u1GcDaBoJo&t=981s
在item
身上加上box-shadow:左右偏移 上下偏移 模糊範圍 陰影顏色
https://www.youtube.com/watch?v=l-sQNXNrw3s&list=PLqivELodHt3hxeuLX8PYaI8u1GcDaBoJo&t=1038s
動畫@keyframes ss
這個ss
是任意命名,用來代表其所設定的動畫值,之後會帶入其他地方。
動畫內容指定初始從0%時是-10deg,直到終點100%變成10deg
不想要搖動整個icon
容器,而是只搖動裡面的圖示文字(圖案)
而且想要.item
被「摸到」時圖示文字就搖動,
而圖示文字有共用的class
名稱叫做fa
,
所以CSS選擇器寫作:
並給它animation
屬性,此時再把剛才自定義過的動畫內容ss
帶入,並設定總搖動時間歷時0.2s,也就是所有動作必須在0.2秒內搖完(搖很快),並且搖動的加速度設為linear,也就是平均搖動、沒有任何加減速地搖,且infinite表示無止境的重複搖,且希望他來回搖alternate
,也就是說-10deg到10deg以後,會從10deg搖回去-10deg,再週而復始,會來回雙向地動作,如果沒有設這個,會變成單向的無止境看起來不自然。
https://www.youtube.com/watch?v=l-sQNXNrw3s&list=PLqivELodHt3hxeuLX8PYaI8u1GcDaBoJo&t=1241s
:hover前面多了空格,導致游標必須明確摸到icon才會搖,只摸整個塊狀時沒反應,但是把空格刪除,修正CSS後,就變成原本想要的游標只要碰到塊狀任一區,icon就會開始搖動。
https://youtu.be/l-sQNXNrw3s?t=1279
微調文字內距padding