CSS3 在 width 與 height 屬性多了幾個值可以用來配合響應式的網站 UI,來看一下用法與說明。

1. fill-available

設定 fill-available 可以把空間給填滿,先看簡單的用法:

先準備 html:

<div class="box">
  <div class="fill-available">
    階層式樣式表是一種用來為結構化文件添加樣式的電腦語言,由W3C定義和維護。
  </div>
</div>

接著設定 CSS:

.box{
  height: 200px;
}
.fill-available {
    display: inline-block;
    width: -webkit-fill-available;
    width: -moz-fill-available;
    width: -moz-available;
    width: fill-available;
    background-color: pink;
}

裡面那一層設定 display 為 inline-block,本來寬度應該是跟內容一樣寬,但當設定為 width: fill-available 的時候,就會延伸到跟母容器一樣寬了。

 

用在高度的話,就能實現內容是一樣高的 UI 了。

<div class="container" >
  <div class="box">
    CSS
  </div>
  <div class="box">
    javascript
  </div>
</div>
.container{
  height: 120px;
}
.box {
  display: inline-block;
  width: 100px;
  height: -webkit-fill-available;
  height: -moz-fill-available;
  height: -moz-available;
  height: fill-available;
  background-color: pink;
}

這樣每一塊就可以等高了,不過 firefox 感覺沒有支援高度的 chrome 是可以執行的。

 

2. fit-content

fit-content 則是相對的可以讓寬度變得跟內容一樣。

<div class="box">
  Hello world.
</div>
<div class="box">
  I'm Tom.
</div>

所以如果像上面的 html,我們給他一個底色後,本來應該是會延伸到跟母容器一樣寬,但當加了 width: fit-content 之後,就會變得跟內容一樣寬了。

.box{
  margin: 10px;
  background: pink;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}

而又因為區塊還是 block,所以會自動換行,所以我們可以再設定 margin: auto 的方式讓區塊置中。

.box{
  margin: 10px;
  background: pink;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto;
}

不過一樣在 firefox 沒辦法置中,所以要用這個屬性還是可以再考慮一下。