CSS 教學二:排版功能
Simon Asika
2014
三大重要指令
display
設定一個元素所佔空間的方式,或不顯示
float
浮動元素,用來左右排列元素
position
元素定位,設定元素在頁面中的哪個位置
display 屬性
none 完全隱藏,看不見 block 區塊元素。向左右拉伸滿版,佔滿空間 inline 行內元素。可以在文字內,無法設定寬高。 inline-block 行內,但會在自己的寬高空間內佔滿版
block 區塊元素
p, div 等,左右拉伸至滿版
p
p
div
inline 行內元素
這是文字
接著又是文字
這是inline元素
span, em, strong 等皆是 inline 元素,與文字並存在同一排(會折行)
無法設定寬高
inline-block 元素
這是文字
接著又是文字
這是inline元素
與文字並存在同一排(會折行),
但可以設定寬高。
float 浮動元素
讓元素浮起來,向left或right依序排列。
會使該元素失去頁面空間,成為浮起來的元素,並蓋在其他元素上面。
後面的元素會補到他原本的空間上。
尚未設定 float
<div>
<div></div>
<div></div>
</div>
第一個元素設定 float
<div>
<div style="float:left;"></div>
<div></div>
</div>
float:left
他就不再佔空間了
兩個元素皆設定 float
<div>
<div style="float:left;"></div>
<div style="float:left;"></div>
</div>
float:left
float:left
兩者皆不佔空間,綠色div便縮成一條線
一直加下去
<div>
<div style="float:left;"></div>
<div style="float:left;"></div>
<div style="float:left;"></div>
<div style="float:left;"></div>
</div>
float:left
float:left
float:left
float:left
會持續向左排列
加上清除浮動
<div>
<div style="float:left;"></div>
<div style="float:left;"></div>
<div style="float:left;"></div>
<div style="float:left;"></div>
<div style="clear:both;"></div>
</div>
float:left
float:left
float:left
float:left
用clear:both當佔位符,可以讓綠色div被正常拉開
clear:both
也可以向右浮動
<div>
<div style="float:left;"></div>
<div style="float:right;"></div>
</div>
float:left
float:left
一邊向左,一邊向右
再次加上佔位符
<div>
<div style="float:left;"></div>
<div style="float:right;"></div>
</div>
float:left
float:left
讓綠色 div 被拉開
clear:both
常見的格狀排版
float:left
clear:both
float:left
float:left
float:left
float:left
float:left
float:left
position 指令
先設了 position 成為 relative, absolute 或 fixed 後。
可用 top, bottom, left or right 四項屬性設定所在位置
可用負數,單位px
relative 相對位置。
根據母元素,或者自己本身應該處在的位置為起始點。
即使移走了,還是會佔空間
頁面
母元素
position: relative;
left: -300px;
top: 400px ;
原點
用 relative 向左下方移動
absolute 絕對位置
以頁面最左上角位置為起始點。
若不移動,會佔空間。一旦移走了,空間就會消失。
※當母元素設有absolute, relative, fixed 時,子元素的absolute原點會從母元素的左上角開始
頁面
母元素
position: relative;
left: -300px;
top: 400px ;
原點
absolute 會從頁面左上角作為原點
頁面
母元素設有position時
position: relative;
left: -300px;
top: 400px ;
原點
母元素設有position時會從母元素左上角開始
附錄
- 外距與內距
- 盒模型
- 連續技寫法
- 長度單位
- 顏色表示法
外距與內距
外距: margin
由元素本身向外延伸,將週遭的元素推開。兩個元素的上下外距會重疊在一起,左右不會。
內距: padding
由元素向內產生的內距,會把整體寬度拉開。已經精確算好長寬時,要謹慎使用內距
邊框: border
邊框的寬度會把元素長寬也向外拉,同樣要注意。
CSS 盒模型
連續計寫法
通常有多種類似項目的元素,可以合在同一行寫。
例:
margin-top: 5px;
margin-right: 10px;
margin-bottom: 6px;
margin-left: 7px;
可寫成簡寫(順序:上右下左)
margin: 5px 10px 6px 7px;
常見連續計寫法
margin: 10px ;
全部10px
margin: 10px 20px;
上下 / 左右
margin: 10px 0px 30px 15px;
上 / 右 / 下 / 左(順時針)
常見連續計寫法
border: 1px solid #000;
邊框寬度 / 線條類型(實線)/ 顏色。
background: #ccc url(img.png) no-repeat ;
顏色 / 圖片 / 不重複
background: #ccc url(img.jpg) center top repeat-y;
顏色 / 圖片 / 左右對齊 / 上下對齊 / 重複方向
長度單位
不隨螢幕大小變動(絕對)
- in 英吋
- cm 釐米
- mm 毫米
- pt 磅 (1 pt 等於 1/72 英吋)
隨螢幕大小變動(相對)
- % 百分比
- em 目前字體的100%尺寸
- px 像素 (螢幕上的一個點)
- pc 12 點活字 (1 pc 等於 12 點)
顏色表示法
顏色名稱
red, white, black, green, blue
網頁色碼 #FF647D, #6666BE #CCCCCC 可簡寫成 #CCC
RGB
rgb(255, 60, 75)
rgba(255, 60, 75, 0.8) 最後代表透明度
Thank You
CSS 課程二
By Simon Asika
CSS 課程二
- 809