가로 방향이면 '너비'가 플렉스 아이템의 크기가 됩니다.
가로 방향이면 '높이'가 플렉스 아이템의 크기가 됩니다.
<div class="container">
    <div class="item">A</div>
    <div class="item">B</div>
    <div class="item">C</div>
</div>
.container {
    display: flex;
    flex-direction: row; /* 플렉스 아이템의 배치 방향이 '가로 축'이므로
                            플렉스 아이템의 주축 방향의 크기는 '너비'가 됨 */
    border: 4px dashed silver;
}  
.item { /* 플렉스 아이템 */
    border: 4px solid blue;
    background-color: yellow;
    /* 모든 플렉스 아이템의 너비를 자동으로 꽉 채우기 */
    flex-basis: auto;
    flex-grow: 1;
    flex-shrink: 1;
} 
/*
 * 일부 스타일 코드는 가독성을 위해 생략했습니다!
*/
실제 적용된 모습 플렉스 컨테이너의 크기가 바뀌더라도 모든 플렉스 아이템의 너비를 자동으로 꽉 채울 수 있습니다.
<div class="container">
    <div class="item item-1">item-1</div>
    <div class="item item-2">item-2</div>
    <div class="item item-3">item-3</div>
</div>
.container {
    display: flex;
    flex-direction: row; /* 플렉스 아이템의 배치 방향이 '가로 축'이므로
                            플렉스 아이템의 주축 방향의 크기는 '너비'가 됨 */
    border: 4px dashed silver;
}  
.item { /* 플렉스 아이템 */
    border: 4px solid blue;
    background-color: yellow;
    /* 유연성을 제거하여 폭을 고정함 */
    flex-basis: auto;
    flex-grow: 0;
    flex-shrink: 0;
} 

/* 유연성을 제거한 플렉스 아이템이 주축 방향이 '가로 축'이면
   width 값을 너비의 고정 크기로 사용 */
.item-1 {
    width: 50px;
}
.item-2 {
    width: 100px;
}
.item-3 {
    width: 150px;
}
/*
 * 일부 스타일 코드는 가독성을 위해 생략했습니다!
*/
실제 적용된 모습 플렉스 컨테이너의 크기가 바뀌더라도 모든 플렉스 아이템의 너비는 고정됩니다.
특정 요소("B")만 너비를 자동으로 꽉 채우기 플렉스 컨테이너의 크기가 바뀌더라도 특정 플렉스 아이템("C")만 주변 플렉스 아이템들의 크기를 고려해서 너비를 늘리거나 축소해 자동으로 꽉 채울 수 있습니다.
<div class="container">
    <div class="item item-a">100px</div>
    <div class="item item-b">B</div>
    <div class="item item-c">100px</div>
</div>
.container {
    display: flex;
    flex-direction: row; /* 플렉스 아이템의 배치 방향이 '가로 축'이므로
                            플렉스 아이템의 주축 방향의 크기는 '너비'가 됨 */
    border: 4px dashed silver;
}  
.item { /* 플렉스 아이템 */
    border: 4px solid blue;
    background-color: yellow;
} 
.item-b { /* 플렉스 아이템의 너비를 자동으로 꽉 채우기 */
    flex-basis: auto;
    flex-grow: 1;
    flex-shrink: 1;
}
.item-a, .item-c { /* 유연성을 제거하여 폭을 고정함 */
    flex-basis: auto;
    flex-grow: 0;
    flex-shrink: 0;
    width: 100px;
}
/*
 * 일부 스타일 코드는 가독성을 위해 생략했습니다!
*/
.item { /* 플렉스 아이템 */
    /* 플렉스 아이템의 너비를 자동으로 꽉 채우기 */
    flex-basis: auto;
    flex-grow: 1;
    flex-shrink: 1;
} 
.item { /* 플렉스 아이템 */
    /* 플렉스 아이템의 너비를 자동으로 꽉 채우기 */
    flex: auto; /* flex-grow=1, flex-shrink=1, flex-basis=auto와 동일 */
} 

caniuse.com에서 더 자세한 정보를 확인해 보세요.