flex:1; 與 flex:auto;

在項目練習中,發現利用彈性佈局方式爲盒子設置相同的屬性:佈局

.main>.section{ display: flex; height: 100px; margin: 4px 2px;
} .main>.section>.col{ background: #ff5555; flex: auto ; border-left: 1px solid #fff; box-sizing: border-box; text-align: center;
}

並不能使得每一行的盒子在主軸方向上平分彈性容器的尺寸(此處爲寬度):flex

 這是由於爲元素設置的spa

div{ flex: auto ;      
}

等同於code

div{ flex-grow: 1; flex-shrink: 1; flex-basis: auto;
}

 flex-basis: auto;會使得盒子的寬度由盒子內容決定,要想使得寬度一致,而且當主軸方向存在剩餘空間就統一擴大,空間不足則縮小,應該改變其值爲:blog

div{ flex-grow: 1; flex-shrink: 1; flex-basis: 0%;
}

或者更簡便的寫法:io

div{ flex: 1;
}

上述二者效果是一致的,獲得結果如圖:class

 

 

 flex簡寫形式的表達含義容器

 

div{ flex: none;
}
/* 等同於 */ div{ flex-grow: 0; flex-shrink: 0; flex-basis: auto;
}
div{ flex: auto;
}
/* 等同於 */ div{ flex-grow: 1; flex-shrink: 1; flex-basis: auto;
}
div{ flex: 1; /* 非負數 */
}
/* 等同於 */ div{ flex-grow: 1; /* 非負數 */ flex-shrink: 1; flex-basis: 0%;
}
div{ flex: 0%; /* 長度或百分比 */
}
/* 等同於 */ div{ flex-grow: 1; flex-shrink: 1; flex-basis: 0%; /* 長度或百分比 */
}
div{ flex: 1 2; /* 兩個非負數 */
}
/* 等同於 */ div{ flex-grow: 1; /* 第一個非負數 */ flex-shrink: 2; /* 第二個非負數 */ flex-basis: 0%; 
}
相關文章
相關標籤/搜索