iT邦幫忙

2023 iThome 鐵人賽

DAY 19
0
Modern Web

打造你的第一個網站系列 第 19

第十九天-CSS 定位練習(二)

  • 分享至 

  • xImage
  •  

了解了昨天的定位之後,今天我們做一個小練習,
https://ithelp.ithome.com.tw/upload/images/20230929/20149625zszXTeSIyQ.png

如何讓兩個方塊重疊呢?

HTML程式碼我們這樣打:

           ⋮
        <h3>將小方塊定位到方塊的中間置中</h3>
        <br>
        <div class="outer">
            <div class="center ">
            </div>
            <h1>text example</h1>
            <div class="inner">


         </div>
        </div>

CSS中,我們設定一個outer方塊以及一個center方塊:

.outer {
    width: 200px;
    height: 200px;
    color: rgb(245, 1, 1);
    background: rgb(199, 186, 186);
    border-radius: 5px;
    position: relative;
    box-shadow: 0px 5px 5px rgb(88, 80, 80);
}
.center {
    width: 80px;
    height: 80px;
    color: aquamarine;
    background: rgb(207, 162, 162);
    border-radius: 5px;
    position: absolute;
    margin: auto auto;
    left: 0;
    right: 0px;
    top: 0;
    bottom: 0px;
    z-index: 2;
}

這裡有幾個重點必須要解釋:
1.我們設定center的位置的時候,由於static無法與任何定位元素搭配,所以static自然不會是我們的選擇,再來因 為relative特性的關係,會保有原來的空間,因此,relative也不是我們的選擇,剩下的absolute就是我們要選擇 的方式。只是依照absolute的定位特性來說我們不能與static搭配,所以上一層的元素outer的部分我就必須選擇 relative。
2.選好了position之後,我們接下來要如何讓方塊置中呢?我們可以使用margin這個屬性來讓方塊左右置中,但是當 我們想要用同樣的方式讓元素上下置中的時候卻無法,這是因為網頁的設計通常都是有固定的寬,但是卷軸可以一直 往下延伸,因此無法用margin: auto來讓上下置中。
3.解決的辦法是,由於我們已經讓center跟上層元素定位了,這時候只要將center的位置也定位下來,就可以讓 margin:auto自動去尋找位置,因此設定top、bottom、left、right 0px。如果需要將方塊位置至於最上面,則入 z-index:2(注意,z-index的數值必須大於其他層的數值,這樣才會顯示再最上方)。


上一篇
第十八天-CSS 定位模式(一)
下一篇
第二十天-CSS 定位進階範例
系列文
打造你的第一個網站32
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言