CSSのメディアクエリを使うことで、スマートフォンの時だけ要素を縦並びにすることができます。以下はその例です。
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>横並び・縦並びの切り替え</title>
<style>
.container {
display: flex;
flex-direction: row; /* デフォルトでは横並び */
}
.item {
padding: 10px;
border: 1px solid #000;
}
/* スマートフォンの時だけ縦並びにする */
@media (max-width: 768px) {
.container {
flex-direction: column; /* 縦並び */
}
}
</style>
</head>
<body>
<div class="container">
<div class="item">Item 1</div>
<div class="item">Item 2</div>
<div class="item">Item 3</div>
</div>
</body>
解説
このようにすることで、PCやタブレットでは横並び、スマートフォンでは縦並びに表示が切り替わります。