第一次知道CSS container是因為工作上需要,才會查到,情境如下:
.container{
    width:100%;
    height:30vh;
    .child{
       /* font-size須根據容器大小變化 */
       font-size:5cqh;
    }
    &.active{
       height:50vh;
       .child{
            /* font-size須根據容器大小變化 */
            font-size:10cqh;
       }
    }
}
雖然可以有其他方法做的到,但看到有這個新屬性就迫不及待研究看看。
container屬性是container-type和container-name兩個屬性的縮寫,可以寫成container:container-type/container-name;
| 屬性 | 值 | 
|---|---|
container-type | 
normal:如果設定normal,後代元素只能查詢容器樣式,容器尺寸將不能查詢,亦不能應用。 | 
container-type | 
inline-size:設定inline-size,則只會查詢容器的inline尺寸, | 
container-type | 
size,設定size則inline尺寸及block尺寸都可以查詢。 | 
container-name | 
預設值default ;不用使用引號( | 
容器的單位尺寸,與可視區(ViewPort)單位語法與意義相似;
可視區的單位vw、vh、vmin、vmax相似,可對應到cqw、cqh、cqmin、cqmax。
| 屬性 | 值 | 
|---|---|
cqw | 
表示容器寬度單位(container query width)。1cqw=1%容器寬度。ex:容器100px寬,1cqw=1px。 | 
cqi | 
表示容器inline-size單位(container query inline-size)。不特別設定下,inline-size通常指的是水平方向,對應的會是容器寬度,因此1cqi通常等於1cqw。 | 
cqh | 
表示容器寬度單位(container query height)。1cqh=1%容器高度。ex:容器100px高,1cqh=1px。 | 
cqb | 
表示容器block-size單位(container query block-size)。不特別設定下,block-size通常指的是垂直方向,對應的會是容器高度,因此1cqb通常等於1cqh。 | 
cqmin | 
表示容器較小尺寸的單位,ex:容器為寬1000px高800px的容器,較小邊是高800px,這時1qmin=1%容器高=8px。 | 
cqmax | 
表示容器較大尺寸的單位,ex:容器為寬1000px高800px的容器,較大邊是寬1000px,這時1qmax=1%容器寬=10px。 | 
這篇提到,如果你的容器設定在自適應寬度,像是flex的子元素、abosulte的元素(子元素用自身撐abosulte父元素)、float元素、或是width設定fit-content的元素,container寬度都會為
0,因此container相關的設定都會無法作用,2023/09/24實測一樣無作用。
CSS @container是一種新的容器查詢,可以根據容器大小或計算樣式的變化來改變樣式@media媒體查詢用法類似,@media匹配的是瀏覽器視窗,@cintainer則是某個指定元素