iT邦幫忙

2026 iThome 鐵人賽

DAY 3
0
自我挑戰組

30 天,挑戰我的 Web 前端力系列 第 3

不要再跑了!給我乖乖站中間

  • 分享至 

  • xImage
  •  

昨天吃完 HTML 美味蟹堡,今天決定來消化一下。
結果第一個遇到的問題就是 ——
這個東西為什麼都不肯站中間???????

明明我的要求很簡單。
就是:

你,站,中,間。
/images/emoticon/emoticon05.gif

結果 CSS 一臉:
「哪個中間?」
「水平還是垂直?」
「主軸還是交叉軸?」
蛤???

我只是想置中,為什麼突然變方向感測驗 ==

先從最乖的開始:文字置中
如果今天只是要讓文字左右置中,那事情還算和平。

.title {
  text-align: center;
}

https://ithelp.ithome.com.tw/upload/images/20260915/20178938JHYo2AsJQk.png

看到這裡我還想說:
CSS 置中也沒多難嘛~呵呵。
事情如果這麼簡單,我今天就不用寫這篇了!

結果換成 div,它就不理我了QQ
先做一個最簡單的 box:

<div class="box">
  我是方塊
</div>
.box {
  width: 200px;
  height: 100px;
  border: 2px solid black;
}

https://ithelp.ithome.com.tw/upload/images/20260915/20178938sBXHWBtLyF.png
目前方塊很乖,但它還是牢牢黏在左邊。
接著我想:
剛剛文字用 text-align: center 就成功了,那 box 也來一下。


.box {
  width: 200px;
  height: 100px;
  border: 2px solid black;
  text-align: center;
}

https://ithelp.ithome.com.tw/upload/images/20260915/20178938XXBDUnbzRh.png
結果文字站中間了,方塊本人還是黏在左邊。

不是欸。我要的是你整個人過去,不是只有裡面的字自己跑走 XD

這時候才重新確認:
text-align: center 主要是讓元素裡面的文字或 inline 內容置中,
不是把整個 block 元素搬到中間。

接著幫方塊本人搬家!
既然

text-align: center

只能把裡面的文字送進中間,
那這次就來處理方塊本人!

先加上CSS:

.box {
  width: 200px;
  height: 100px;
  border: 2px solid black;
  margin: 0 auto;
}

https://ithelp.ithome.com.tw/upload/images/20260915/201789381YCulcqt5i.png
這次真的整顆方塊跑到中間了!!!

以前其實很常看到:

margin: 0 auto;

對它的理解大概就是:

嗯,置中咒語!

要置中?貼下去就對了。
至於為什麼?
不知道,反正它會動。嘻嘻

這次重新看才知道,

margin: 0 auto;

其實可以拆成:

margin-top: 0;
margin-right: auto;
margin-bottom: 0;
margin-left: auto;

也就是左右兩邊的 margin 都設定成 auto。
當方塊本身已經有設定寬度時,剩下的空間就會平均分配到左右兩側。
所以最後它就會乖乖跑到中間。
嗯……
原來不是方塊自己想通了,是左右一起把它擠到中間 XD

那上下呢?
左右成功了!

照理來說今天應該可以收工了吧?

但是人就是這樣。
成功一個之後就會開始想:

那上下也可以順便嗎?
目前的:

margin: 0 auto;

如果今天想要:

水平置中+垂直置中

那事情就又不一樣了。

這時候有一位明天的主角準備登場——Flexbox。

但今天先到這。。。
不然再寫下去,我怕我等等又開始分不清楚:

justify-content

align-items

到底誰是誰 ==

Day 3,闖關半完成!


上一篇
肚子餓了! 今天來做 HTML 美味蟹堡 ~
下一篇
Flexbox:你們兩個到底誰管左右???
系列文
30 天,挑戰我的 Web 前端力11
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言