程式導師
css
完全跟著 Amos 的金魚系列做的 CSS 筆記。
為什麼需要 CSS Reset?
因為各個不同的瀏覽器,自帶有不同的 CSS 預設樣式(外觀),所以在寫網頁前,需要先做 CSS Reset,確保掌握頁面中的各種元素樣式,不會被瀏覽器預設樣式打擾。
如何使用 CSS Reset?
不讓 CSS Reset 太激進:CSS Normalize
因為使用 CSS Reset 會讓整個網頁預設樣式歸零,因此所有的字體、行距、字距等都會是一樣的,沒有任何差別,但這在實作專案時,可能會遇到些小問題(這個可能要到實作後,才會遇到)。因此實作中,較常使用的是「CSS Normalize」,Normalize 的方法有很多套,Normalize.css 是其中一套,端看公司內部是怎麼規定的。
預設情況下的物件總寬度是如何組成
Box-sizing 是用來指定 width 的劃定範圍
box-sizing: border-box
total width 的範圍是到兩邊的 border。box-sizing: content-box
total width 的寬度只有物件的內容物。在排版的時候,通常會在內容物外以一個 div,class name 是 wrap 或 container ,把內容包起來。
<div>
<p>
<h1>
<ul>
<li>
<img>
<span>
使用 inline-block 要注意「空白字問題」,會讓物件之間出現莫名的空白處,所以要搭配
font-size: 0
把物件間的空白處消除。
Float 屬於較資深的排版方法,新出的排版方式還有 Grid 或 Flex-box。
Float 的參數只有靠左(left)或靠右(right)。
如果 A 物件(子層)是撐開 B 物件(父層)的,當 A 物件設定成 float,代表撐開 B 物件的物件已不在,就會回到被撐開的狀態前。所以就需要多設定一個 div,利用 css 屬性 clear,讓父層能抓到子層的高度。
Q: <em>
跟 <strong>
的差別
比 float 易用的排版方法,使用的時候要特別注意瀏覽器的版本,Microsoft 系版本的舊瀏覽器可能不支援 flex 排版方法。
如何使用 flex?
display: flex
。Flex 的效果
flex-wrap: wrap
。CSS 定位的意思是指,網頁中的**物件要依據「誰」**來對齊或選定位置?CSS 定位方式有五種,分別是
position: fixed
利用 position: fixed
垂直置中
利用 position: fixed
水平置中
只比垂直置中的方式,多增加 left 跟 right 的參數設定而已。
position: relative
相對定位,指的是物件會相對於自己在頁面中的「原位置」,在不影響其他物件的情況下,進行偏移。如果物件沒有偏移位置,就不會看見 position: relative
的效果,這也是常常覺得有 relative 但畫面沒差別的原因。
補充:left, right, top, bottom, z-index,這些參數要在物件有設定 position 的情況下,才會發生作用。
position: absolute
絕對定位,會根據最先碰到,且具備 fixed 或 relative 或 absolute 三者之一的 position 性質的父層,來對齊。
特性
transition: 屬性, 轉換時間, 延遲動畫執行的時間, 速度
可製造出平順轉變的效果,且能寫入多組動畫組合:transition: background-color, 2s; color, .3s
animation: 動畫名稱, 執行時間, 延遲執行的時間, 速度, 次數, 方向, 填充模式, 播放狀態
可自行調控的動畫細節比 transition 多,其中「延遲執行的時間」參數,指的是要讓物件等多久才開始執行動畫。
如何使用 animation?
關鍵影格的概念,要想成是影片的時間軸,0% 代表在影片一開始,100% 代表在影片結尾。
為不同裝置應用不同的樣式,讓網頁透過偵測不同的螢幕寬度,顯示出對應的樣式。
如何使用 media rule?
<meta name="viewport" content="width-device-width, initial-scale=1.0, shrink-to-fit=no">
,viewport 的作用是指定視窗的縮放模式。@media screen and (條件) and (條件) { }
例如要表示當裝置是 screen,且螢幕大於等於 768px 的情況,通常大於等於 768px 言下之意就是,在電腦或平板的情況