iT邦幫忙

2022 iThome 鐵人賽

DAY 10
0
Modern Web

手把手web初學者系列 第 10

用CSS把這些Box定位

  • 分享至 

  • xImage
  •  

Position

HTML先設定出3個Box
https://ithelp.ithome.com.tw/upload/images/20220922/20151549fgmhlzVb6Z.png
Box的顏色分別為:
box1https://ithelp.ithome.com.tw/upload/images/20220923/20151549gHkBXEXFzs.png
box2https://ithelp.ithome.com.tw/upload/images/20220923/20151549OtzBn9mbb7.png
box3https://ithelp.ithome.com.tw/upload/images/20220923/20151549iD6Up6oiTp.png

div.container{
    width: 500px;
    height: 500px;
    background-color: rgb(244, 251, 230);
}
.box{
    width: 125px;
    height: 125px;
}
.box1{
    background-color: aquamarine;
}
.box2{
    background-color: rgb(255, 240, 127);
}
.box3{
    background-color: rgb(127, 200, 255);
}

Static 默認值

不會被特別定位,元素會依據文檔的正常流程來定位
在這裡toprightbottomleftz-index屬性是無效的
https://ithelp.ithome.com.tw/upload/images/20220923/201515493HFQHYXdx1.png

Relative 相對定位

元素會依據文檔的正常流程來定位,沒設定屬性跟Static是相同的
這邊可以設定Box擺放的相對位置
所以toprightbottomleftz-index屬性是有效的

範例:
將box2定位設為 relative ,設定相對移動位置left: 250px; top: 125px;

.box2{
    background-color: rgb(255, 240, 127);
    position: relative;
    left: 250px;
    top: 125px;
}

實作結果: box2相對於原本的位置,下移125px,右移250px
https://ithelp.ithome.com.tw/upload/images/20220923/20151549VDCieSHhYr.png

z-index屬性應用

.box1{
    background-color: aquamarine;
    position: relative;
    z-index: 1;
}
.box2{
    background-color: rgb(255, 240, 127);
    position: relative;
    left: 50px;
    bottom: 75px;
    z-index: 3;
}
.box3{
    background-color: rgb(127, 200, 255);
    position: relative;
    left: 100px;
    bottom: 150px;
    z-index: 2;
}

實作結果:
重疊時數字越大將會覆蓋數字越小的
https://ithelp.ithome.com.tw/upload/images/20220923/20151549q6urkYLXpj.png

Absolute 絕對定位

absolute的定位是所處上層容器的相對位置
如果上層容器沒有可以被定位的元素的話,那麼這個元素的定位會直接參考 body 元素的絕對位置
範例:
將box2定位設為 absolute ,設定left: 0px; bottom: 0px;
.box2{
background-color: rgb(255, 240, 127);
position: absolute;
left: 0px;
bottom: 0px;
}
實作結果:
box2沒有父元素,因此定位直接參考 body 元素的絕對位置
https://ithelp.ithome.com.tw/upload/images/20220923/20151549rarbtHW08a.png

如果我們將上層容器(也就是div.container)定位設為relative
實作結果:
會發現它就盯喂在上層容器中的left: 0px; bottom: 0px;
https://ithelp.ithome.com.tw/upload/images/20220923/20151549WvFLCDaGOZ.png

Fixed 固定定位

fixed的元素會相對於瀏覽器視窗來定位,如果頁面捲動,它還是會固定在同樣的位置
不會保留它原本在頁面應有的空間,所以不會跟其他元素的配置互相干擾
範例:
將box2定位設為 fixed ,設定left: 100px; top: 100px;

.box2{
    background-color: rgb(255, 240, 127);
    position: fixed;
    left: 100px;
    top: 100px;
}

實作結果:
https://ithelp.ithome.com.tw/upload/images/20220923/20151549hmz35dLoCU.png

Sticky

當畫面捲動到超過畫面時就會讓元素固定在容器之中的位置
範例可看position: sticky

讓我們來看看實際的網頁版面配置幫助我們更加理解 position 的用法~

https://ithelp.ithome.com.tw/upload/images/20220923/20151549ggApRNpxjR.png

學會定位了!明天我們就來讓這些箱子動起來吧~


上一篇
與切版相遇的這天,用CSS把HTML切一切打包進Box中
下一篇
CSS讓Box移動了!【Transition篇】
系列文
手把手web初學者30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言