参考サイト
HTML
<p>Flexコンテナ(親要素)</p>
<div class="container">
<div class="item">Flexアイテム-1(子要素-1)</div>
<div class="item">Flexアイテム-2(子要素-2)</div>
<div class="item">Flexアイテム-3(子要素-3)</div>
</div>
CSS
.container {
display: flex;
padding: 10px;
background-color: pink;
border: 1px #333 solid;
}
.item {
padding: 10px;
background-color: paleturquoise;
border: 1px #333 solid;
}
Flexコンテナ(親要素)
display: コンテナ属性;
Flex コンテナの作成を指定します。
コンテナ属性は、以下の値を指定します。
HTML
<!-- 子要素の div 間のすきまをつくらないために横に並べて記述 -->
<div class="flex-s-01"><div>子要素-1-1</div><div>子要素-1-2</div><div>子要素-1-3</div></div><div class="flex-s-01"><div>子要素-2-1</div><div>子要素-2-2</div><div>子要素-2-3</div></div>
CSS
.flex-s-01 {
display: flex;
padding: 10px;
background-color: pink;
border: 1px #333 solid;
}
.flex-s-01 div {
padding: 10px;
background-color: paleturquoise;
border: 1px #333 solid;
}
HTML
<!-- 子要素の div 間のすきまをつくらないために横に並べて記述 -->
<div class="flex-s-02"><div>子要素-1-1</div><div>子要素-1-2</div><div>子要素-1-3</div></div><div class="flex-s-02"><div>子要素-2-1</div><div>子要素-2-2</div><div>子要素-2-3</div></div>
CSS
.flex-s-02 {
display: inline-flex;
padding: 10px;
background-color: pink;
border: 1px #333 solid;
}
.flex-s-02 div {
padding: 10px;
background-color: paleturquoise;
border: 1px #333 solid;
}
flex-direction: Flex アイテムの並び順;
Flex アイテムの並び順を指定します。
Flex アイテムの並び順は、以下の値で指定します。
HTML
<div class="flex-s-01" style="flex-direction: row;">
<div>子要素-1</div>
<div>子要素-2</div>
<div>子要素-3</div>
</div>
CSS
.flex-s-01 {
display: flex;
padding: 10px;
background-color: pink;
border: 1px #333 solid;
}
.flex-s-01 div {
padding: 10px;
background-color: paleturquoise;
border: 1px #333 solid;
}
HTML
<div class="flex-s-01" style="flex-direction: row-reverse;">
<div>子要素-1</div>
<div>子要素-2</div>
<div>子要素-3</div>
</div>
CSS
.flex-s-01 {
display: flex;
padding: 10px;
background-color: pink;
border: 1px #333 solid;
}
.flex-s-01 div {
padding: 10px;
background-color: paleturquoise;
border: 1px #333 solid;
}
HTML
<div class="flex-s-01" style="flex-direction: column;">
<div>子要素-1</div>
<div>子要素-2</div>
<div>子要素-3</div>
</div>
CSS
.flex-s-01 {
display: flex;
padding: 10px;
background-color: pink;
border: 1px #333 solid;
}
.flex-s-01 div {
padding: 10px;
background-color: paleturquoise;
border: 1px #333 solid;
}
HTML
<div class="flex-s-01 lf" style="flex-direction: column-reverse;">
<div>子要素-1</div>
<div>子要素-2</div>
<div>子要素-3</div>
</div>
CSS
.flex-s-01 {
display: flex;
padding: 10px;
background-color: pink;
border: 1px #333 solid;
}
.flex-s-01 div {
padding: 10px;
background-color: paleturquoise;
border: 1px #333 solid;
}
flex-wrap: (Flex アイテム折り返し);
Flex アイテムの折り返しを指定します。
Flex アイテム折り返しは、以下の値で指定します。
HTML
<div class="flex-s-01" style="flex-wrap: nowrap;">
<div>子要素-1</div>
<div>子要素-2</div>
<div>子要素-3</div>
<div>子要素-4</div>
<div>子要素-5</div>
<div>子要素-6</div>
<div>子要素-7</div>
<div>子要素-8</div>
<div>子要素-9</div>
<div>子要素-10</div>
<div>子要素-11</div>
<div>子要素-12</div>
</div>
CSS
.flex-s-01 {
display: flex;
padding: 10px;
background-color: pink;
border: 1px #333 solid;
}
.flex-s-01 div {
padding: 10px;
background-color: paleturquoise;
border: 1px #333 solid;
}
HTML
<div class="flex-s-01" style="flex-wrap: wrap;">
<div>子要素-1</div>
<div>子要素-2</div>
<div>子要素-3</div>
<div>子要素-4</div>
<div>子要素-5</div>
<div>子要素-6</div>
<div>子要素-7</div>
<div>子要素-8</div>
<div>子要素-9</div>
<div>子要素-10</div>
<div>子要素-11</div>
<div>子要素-12</div>
</div>
CSS
.flex-s-01 {
display: flex;
padding: 10px;
background-color: pink;
border: 1px #333 solid;
}
.flex-s-01 div {
padding: 10px;
background-color: paleturquoise;
border: 1px #333 solid;
}
HTML
<div class="flex-s-01" style="flex-wrap: wrap-reverse;">
<div>子要素-1</div>
<div>子要素-2</div>
<div>子要素-3</div>
<div>子要素-4</div>
<div>子要素-5</div>
<div>子要素-6</div>
<div>子要素-7</div>
<div>子要素-8</div>
<div>子要素-9</div>
<div>子要素-10</div>
<div>子要素-11</div>
<div>子要素-12</div>
</div>
CSS
.flex-s-01 {
display: flex;
padding: 10px;
background-color: pink;
border: 1px #333 solid;
}
.flex-s-01 div {
padding: 10px;
background-color: paleturquoise;
border: 1px #333 solid;
}
flex-flow: Flexアイテム並び・折り返し一括指定;
flex-direction と flex-wrap を一括で指定します。
HTML
<div class="flex-s-01" style="flex-flow: row-reverse wrap;">
<div>子要素-1</div>
<div>子要素-2</div>
<div>子要素-3</div>
<div>子要素-4</div>
<div>子要素-5</div>
<div>子要素-6</div>
<div>子要素-7</div>
<div>子要素-8</div>
<div>子要素-9</div>
<div>子要素-10</div>
<div>子要素-11</div>
<div>子要素-12</div>
</div>
CSS
.flex-s-01 {
display: flex;
padding: 10px;
background-color: pink;
border: 1px #333 solid;
}
.flex-s-01 div {
padding: 10px;
background-color: paleturquoise;
border: 1px #333 solid;
}
justify-content: Flexアイテム水平位置;
Flex アイテムの水平方向の位置を指定します。
Flex アイテム水平位置は、以下の値で指定します。
HTML
<div class="flex-s-01" style="justify-content: flex-start;">
<div>子要素-1</div>
<div>子要素-2</div>
<div>子要素-3</div>
<div>子要素-4</div>
</div>
CSS
.flex-s-01 {
display: flex;
padding: 10px;
background-color: pink;
border: 1px #333 solid;
}
.flex-s-01 div {
padding: 10px;
background-color: paleturquoise;
border: 1px #333 solid;
}
HTML
<div class="flex-s-01" style="justify-content: flex-end;">
<div>子要素-1</div>
<div>子要素-2</div>
<div>子要素-3</div>
<div>子要素-4</div>
</div>
CSS
.flex-s-01 {
display: flex;
padding: 10px;
background-color: pink;
border: 1px #333 solid;
}
.flex-s-01 div {
padding: 10px;
background-color: paleturquoise;
border: 1px #333 solid;
}
HTML
<div class="flex-s-01" style="justify-content: center;">
<div>子要素-1</div>
<div>子要素-2</div>
<div>子要素-3</div>
<div>子要素-4</div>
</div>
CSS
.flex-s-01 {
display: flex;
padding: 10px;
background-color: pink;
border: 1px #333 solid;
}
.flex-s-01 div {
padding: 10px;
background-color: paleturquoise;
border: 1px #333 solid;
}
HTML
<div class="flex-s-01" style="justify-content: space-between;">
<div>子要素-1</div>
<div>子要素-2</div>
<div>子要素-3</div>
<div>子要素-4</div>
</div>
CSS
.flex-s-01 {
display: flex;
padding: 10px;
background-color: pink;
border: 1px #333 solid;
}
.flex-s-01 div {
padding: 10px;
background-color: paleturquoise;
border: 1px #333 solid;
}
HTML
<div class="flex-s-01" style="justify-content: space-around;">
<div>子要素-1</div>
<div>子要素-2</div>
<div>子要素-3</div>
<div>子要素-4</div>
</div>
CSS
.flex-s-01 {
display: flex;
padding: 10px;
background-color: pink;
border: 1px #333 solid;
}
.flex-s-01 div {
padding: 10px;
background-color: paleturquoise;
border: 1px #333 solid;
}
align-items: Flexアイテム垂直位置;
Flex アイテムの垂直方向の位置を指定します。
Flex アイテム垂直位置は、以下の値で指定します。
HTML
<p>親要素:height: 200px;</p>
<p>子要素-1:font-size: 20px;</p>
<p>子要素-2:font-size: 30px;</p>
<p class="lf">子要素-3:font-size: 40px;</p>
<div class="flex-s-01" style="height: 200px; align-items: stretch;">
<div style="font-size: 20px;">子要素-1</div>
<div style="font-size: 30px;">子要素-2</div>
<div style="font-size: 40px;">子要素-3</div>
</div>
CSS
.lf {
margin-bottom: 16px;
}
.flex-s-01 {
display: flex;
padding: 10px;
background-color: pink;
border: 1px #333 solid;
}
.flex-s-01 div {
padding: 10px;
background-color: paleturquoise;
border: 1px #333 solid;
}
親要素:height: 200px;
子要素-1:font-size: 20px;
子要素-2:font-size: 30px;
子要素-3:font-size: 40px;
HTML
<p>親要素:height: 200px;</p>
<p>子要素-1:font-size: 20px;</p>
<p>子要素-2:font-size: 30px;</p>
<p class="lf">子要素-3:font-size: 40px;</p>
<div class="flex-s-01" style="height: 200px; align-items: flex-start;">
<div style="font-size: 20px;">子要素-1</div>
<div style="font-size: 30px;">子要素-2</div>
<div style="font-size: 40px;">子要素-3</div>
</div>
CSS
.lf {
margin-bottom: 16px;
}
.flex-s-01 {
display: flex;
padding: 10px;
background-color: pink;
border: 1px #333 solid;
}
.flex-s-01 div {
padding: 10px;
background-color: paleturquoise;
border: 1px #333 solid;
}
親要素:height: 200px;
子要素-1:font-size: 20px;
子要素-2:font-size: 30px;
子要素-3:font-size: 40px;
HTML
<p>親要素:height: 200px;</p>
<p>子要素-1:font-size: 20px;</p>
<p>子要素-2:font-size: 30px;</p>
<p class="lf">子要素-3:font-size: 40px;</p>
<div class="flex-s-01" style="height: 200px; align-items: flex-end;">
<div style="font-size: 20px;">子要素-1</div>
<div style="font-size: 30px;">子要素-2</div>
<div style="font-size: 40px;">子要素-3</div>
</div>
CSS
.lf {
margin-bottom: 16px;
}
.flex-s-01 {
display: flex;
padding: 10px;
background-color: pink;
border: 1px #333 solid;
}
.flex-s-01 div {
padding: 10px;
background-color: paleturquoise;
border: 1px #333 solid;
}
親要素:height: 200px;
子要素-1:font-size: 20px;
子要素-2:font-size: 30px;
子要素-3:font-size: 40px;
HTML
<p>親要素:height: 200px;</p>
<p>子要素-1:font-size: 20px;</p>
<p>子要素-2:font-size: 30px;</p>
<p class="lf">子要素-3:font-size: 40px;</p>
<div class="flex-s-01" style="height: 200px; align-items: center;">
<div style="font-size: 20px;">子要素-1</div>
<div style="font-size: 30px;">子要素-2</div>
<div style="font-size: 40px;">子要素-3</div>
</div>
CSS
.lf {
margin-bottom: 16px;
}
.flex-s-01 {
display: flex;
padding: 10px;
background-color: pink;
border: 1px #333 solid;
}
.flex-s-01 div {
padding: 10px;
background-color: paleturquoise;
border: 1px #333 solid;
}
親要素:height: 200px;
子要素-1:font-size: 20px;
子要素-2:font-size: 30px;
子要素-3:font-size: 40px;
HTML
<p>親要素:height: 200px;</p>
<p>子要素-1:font-size: 20px;</p>
<p>子要素-2:font-size: 30px;</p>
<p class="lf">子要素-3:font-size: 40px;</p>
<div class="flex-s-01" style="height: 200px; align-items: baseline;">
<div style="font-size: 20px;">子要素-1</div>
<div style="font-size: 30px;">子要素-2</div>
<div style="font-size: 40px;">子要素-3</div>
</div>
CSS
.lf {
margin-bottom: 16px;
}
.flex-s-01 {
display: flex;
padding: 10px;
background-color: pink;
border: 1px #333 solid;
}
.flex-s-01 div {
padding: 10px;
background-color: paleturquoise;
border: 1px #333 solid;
}
親要素:height: 200px;
子要素-1:font-size: 20px;
子要素-2:font-size: 30px;
子要素-3:font-size: 40px;
align-content: Flexアイテム行の垂直位置;
Flex アイテムの行の垂直方向の位置を指定します。
Flex アイテム行の垂直位置は、以下の値で指定します。
HTML
<p class="lf">親要素:flex-wrap: wrap; height: 250px;(幅狭時:height: 250px;)</p>
<div class="flex-s-03" style="height: 250px; align-content: stretch;">
<div>子要素-1</div>
<div>子要素-2</div>
<div>子要素-3</div>
<div>子要素-4</div>
<div>子要素-5</div>
<div>子要素-6</div>
<div>子要素-7</div>
<div>子要素-8</div>
<div>子要素-9</div>
<div>子要素-10</div>
<div>子要素-11</div>
<div>子要素-12</div>
<div>子要素-13</div>
<div>子要素-14</div>
</div>
CSS
.lf {
margin-bottom: 16px;
}
.flex-s-03 {
display: flex;
flex-wrap: wrap;
padding: 10px;
height: 250px;
background-color: pink;
border: 1px #333 solid;
}
@media screen and (max-width: 760px) {
.flex-s-03 {
height: 500px;
}
}
.flex-s-03 div {
padding: 10px;
background-color: paleturquoise;
border: 1px #333 solid;
}
親要素:flex-wrap: wrap; height: 250px;(幅狭時:height: 500px;)
HTML
<p class="lf">親要素:flex-wrap: wrap; height: 250px;(幅狭時:height: 500px;)</p>
<div class="flex-s-03" style="align-content: flex-start;">
<div>子要素-1</div>
<div>子要素-2</div>
<div>子要素-3</div>
<div>子要素-4</div>
<div>子要素-5</div>
<div>子要素-6</div>
<div>子要素-7</div>
<div>子要素-8</div>
<div>子要素-9</div>
<div>子要素-10</div>
<div>子要素-11</div>
<div>子要素-12</div>
<div>子要素-13</div>
<div>子要素-14</div>
</div>
CSS
.lf {
margin-bottom: 16px;
}
.flex-s-03 {
display: flex;
flex-wrap: wrap;
padding: 10px;
height: 250px;
background-color: pink;
border: 1px #333 solid;
}
@media screen and (max-width: 760px) {
.flex-s-03 {
height: 500px;
}
}
.flex-s-03 div {
padding: 10px;
background-color: paleturquoise;
border: 1px #333 solid;
}
親要素:flex-wrap: wrap; height: 250px;(幅狭時:height: 500px;)
HTML
<p class="lf">親要素:flex-wrap: wrap; height: 250px;(幅狭時:height: 500px;)</p>
<div class="flex-s-03" style="align-content: flex-end;">
<div>子要素-1</div>
<div>子要素-2</div>
<div>子要素-3</div>
<div>子要素-4</div>
<div>子要素-5</div>
<div>子要素-6</div>
<div>子要素-7</div>
<div>子要素-8</div>
<div>子要素-9</div>
<div>子要素-10</div>
<div>子要素-11</div>
<div>子要素-12</div>
<div>子要素-13</div>
<div>子要素-14</div>
</div>
CSS
.lf {
margin-bottom: 16px;
}
.flex-s-03 {
display: flex;
flex-wrap: wrap;
padding: 10px;
height: 250px;
background-color: pink;
border: 1px #333 solid;
}
@media screen and (max-width: 760px) {
.flex-s-03 {
height: 500px;
}
}
.flex-s-03 div {
padding: 10px;
background-color: paleturquoise;
border: 1px #333 solid;
}
親要素:flex-wrap: wrap; height: 250px;(幅狭時:height: 500px;)
HTML
<p class="lf">親要素:flex-wrap: wrap; height: 250px;(幅狭時:height: 500px;)</p>
<div class="flex-s-03" style="align-content: flex-end;">
<div>子要素-1</div>
<div>子要素-2</div>
<div>子要素-3</div>
<div>子要素-4</div>
<div>子要素-5</div>
<div>子要素-6</div>
<div>子要素-7</div>
<div>子要素-8</div>
<div>子要素-9</div>
<div>子要素-10</div>
<div>子要素-11</div>
<div>子要素-12</div>
<div>子要素-13</div>
<div>子要素-14</div>
</div>
CSS
.lf {
margin-bottom: 16px;
}
.flex-s-03 {
display: flex;
flex-wrap: wrap;
padding: 10px;
height: 250px;
background-color: pink;
border: 1px #333 solid;
}
@media screen and (max-width: 760px) {
.flex-s-03 {
height: 500px;
}
}
.flex-s-03 div {
padding: 10px;
background-color: paleturquoise;
border: 1px #333 solid;
}
親要素:flex-wrap: wrap; height: 250px;(幅狭時:height: 500px;)
HTML
<p class="lf">親要素:flex-wrap: wrap; height: 250px;(幅狭時:height: 500px;)</p>
<div class="flex-s-03" style="align-content: space-between;">
<div>子要素-1</div>
<div>子要素-2</div>
<div>子要素-3</div>
<div>子要素-4</div>
<div>子要素-5</div>
<div>子要素-6</div>
<div>子要素-7</div>
<div>子要素-8</div>
<div>子要素-9</div>
<div>子要素-10</div>
<div>子要素-11</div>
<div>子要素-12</div>
<div>子要素-13</div>
<div>子要素-14</div>
</div>
CSS
.lf {
margin-bottom: 16px;
}
.flex-s-03 {
display: flex;
flex-wrap: wrap;
padding: 10px;
height: 250px;
background-color: pink;
border: 1px #333 solid;
}
@media screen and (max-width: 760px) {
.flex-s-03 {
height: 500px;
}
}
.flex-s-03 div {
padding: 10px;
background-color: paleturquoise;
border: 1px #333 solid;
}
親要素:flex-wrap: wrap; height: 250px;(幅狭時:height: 500px;)
HTML
<p class="lf">親要素:flex-wrap: wrap; height: 250px;(幅狭時:height: 500px;)</p>
<div class="flex-s-03" style="align-content: space-around;">
<div>子要素-1</div>
<div>子要素-2</div>
<div>子要素-3</div>
<div>子要素-4</div>
<div>子要素-5</div>
<div>子要素-6</div>
<div>子要素-7</div>
<div>子要素-8</div>
<div>子要素-9</div>
<div>子要素-10</div>
<div>子要素-11</div>
<div>子要素-12</div>
<div>子要素-13</div>
<div>子要素-14</div>
</div>
CSS
.lf {
margin-bottom: 16px;
}
.flex-s-03 {
display: flex;
flex-wrap: wrap;
padding: 10px;
height: 250px;
background-color: pink;
border: 1px #333 solid;
}
@media screen and (max-width: 760px) {
.flex-s-03 {
height: 500px;
}
}
.flex-s-03 div {
padding: 10px;
background-color: paleturquoise;
border: 1px #333 solid;
}
親要素:flex-wrap: wrap; height: 250px;(幅狭時:height: 500px;)
order: Flexアイテム並び順;
Flex アイテムの並び順を指定します。
Flex アイテム並び順は、以下の値で指定します。
HTML
<p>子要素-1:order: 4;</p>
<p>子要素-2:order: 2;</p>
<p>子要素-3:order: 1;</p>
<p class="lf">子要素-4:order: 3;</p>
<div class="flex-s-01">
<div style="order: 4;">子要素-1</div>
<div style="order: 2;">子要素-2</div>
<div style="order: 1;">子要素-3</div>
<div style="order: 3;">子要素-4</div>
</div>
CSS
.lf {
margin-bottom: 16px;
}
.flex-s-01 {
display: flex;
padding: 10px;
background-color: pink;
border: 1px #333 solid;
}
.flex-s-01 div {
padding: 10px;
background-color: paleturquoise;
border: 1px #333 solid;
}
子要素-1:order: 4;
子要素-2:order: 2;
子要素-3:order: 1;
子要素-4:order: 3;
flex-grow: Flexアイテム伸び率;
Flex アイテムの伸び率を指定します。
Flex アイテム伸び率は、以下の値で指定します。
HTML
<p class="lf">flex-grow指定なし</p>
<div class="flex-s-01 lf">
<div>子要素-1</div>
<div>子要素-2</div>
<div>子要素-3</div>
<div>子要素-4</div>
</div>
<p>子要素-1:flex-grow: 4;</p>
<p>子要素-2:flex-grow: 2;</p>
<p>子要素-3:flex-grow: 1;</p>
<p class="lf">子要素-4:flex-grow: 2;</p>
<div class="flex-s-01">
<div style="flex-grow: 4;">子要素-1</div>
<div style="flex-grow: 2;">子要素-2</div>
<div style="flex-grow: 1;">子要素-3</div>
<div style="flex-grow: 2;">子要素-4</div>
</div>
CSS
.lf {
margin-bottom: 16px;
}
.flex-s-01 {
display: flex;
padding: 10px;
background-color: pink;
border: 1px #333 solid;
}
.flex-s-01 div {
padding: 10px;
background-color: paleturquoise;
border: 1px #333 solid;
}
flex-grow指定なし
子要素-1:flex-grow: 4;
子要素-2:flex-grow: 2;
子要素-3:flex-grow: 1;
子要素-4:flex-grow: 2;
flex-shrink: Flexアイテム縮み率;
Flex アイテムの縮み率を指定します。
Flex アイテム縮み率は、以下の値で指定します。
HTML
<p>子要素にwidth: 40%;を指定(40% × 4子要素 = 160%)</p>
<p class="lf">flex-shrink指定なし</p>
<div class="flex-s-01 lf">
<div style="width: 40%;">子要素-1</div>
<div style="width: 40%;">子要素-2</div>
<div style="width: 40%;">子要素-3</div>
<div style="width: 40%;">子要素-4</div>
</div>
<p>子要素にwidth: 40%;を指定(40% × 4子要素 = 160%)</p>
<p>子要素-1:flex-shrink: 4;</p>
<p>子要素-2:flex-shrink: 2;</p>
<p>子要素-3:flex-shrink: 1;</p>
<p class="lf">子要素-4:flex-shrink: 2;</p>
<div class="flex-s-01">
<div style="width: 40%; flex-shrink: 4;">子要素-1</div>
<div style="width: 40%; flex-shrink: 2;">子要素-2</div>
<div style="width: 40%; flex-shrink: 1;">子要素-3</div>
<div style="width: 40%; flex-shrink: 2;">子要素-4</div>
</div>
CSS
.lf {
margin-bottom: 16px;
}
.flex-s-01 {
display: flex;
padding: 10px;
background-color: pink;
border: 1px #333 solid;
}
.flex-s-01 div {
padding: 10px;
background-color: paleturquoise;
border: 1px #333 solid;
}
子要素にwidth: 40%;を指定(40% × 4子要素 = 160%)
flex-shrink指定なし
子要素にwidth: 40%;を指定(40% × 4子要素 = 160%)
子要素-1:flex-shrink: 4;
子要素-2:flex-shrink: 2;
子要素-3:flex-shrink: 1;
子要素-4:flex-shrink: 2;
flex-basis: Flexアイテムベース幅;
Flex アイテムのベースの幅を指定します。
Flex アイテムベース幅は、以下の値で指定します。
HTML
<p>子要素-1:flex-basis: 50%;</p>
<p>子要素-2:flex-basis: 20%;</p>
<p>子要素-3:flex-basis: 15%;</p>
<p class="lf">子要素-4:flex-basis: 15%;</p>
<div class="flex-s-01">
<div style="flex-basis: 50%;">子要素-1</div>
<div style="flex-basis: 20%;">子要素-2</div>
<div style="flex-basis: 15%;">子要素-3</div>
<div style="flex-basis: 15%;">子要素-4</div>
</div>
CSS
.lf {
margin-bottom: 16px;
}
.flex-s-01 {
display: flex;
padding: 10px;
background-color: pink;
border: 1px #333 solid;
}
.flex-s-01 div {
padding: 10px;
background-color: paleturquoise;
border: 1px #333 solid;
}
子要素-1:flex-basis: 50%;
子要素-2:flex-basis: 20%;
子要素-3:flex-basis: 15%;
子要素-4:flex-basis: 15%;
flex: orderの値 flex-growの値 flex-shrinkの値;
order と flex-grow と flex-shrink を一括で指定します。
align-self: Flexアイテム垂直位置;
Flex アイテムの垂直方向の位置を指定します。Flex コンテナ(親要素)に余白がなければ、どれを指定しても表示は変わりません。Flex コンテナ(親要素)に align-items を指定することで垂直方向の位置を指定することもできますが Flex アイテムに align-self が指定されているとこちらが優先されます。
Flex アイテム垂直位置は、以下の値で指定します。
HTML
<p>親要素:height: 200px;</p>
<p>子要素-1:align-self: auto;</p>
<p>子要素-2:align-self: stretch;</p>
<p>子要素-3:align-self: flex-start;</p>
<p>子要素-4:align-self: flex-end;</p>
<p>子要素-5:align-self: center;</p>
<p>子要素-6:align-self: baseline;</p>
<p class="lf">子要素-7:align-self: baseline; font-size: 200%;</p>
<div class="flex-s-01" style="height: 200px;">
<div style="align-self: auto;">子要素-1</div>
<div style="align-self: stretch;">子要素-2</div>
<div style="align-self: flex-start;">子要素-3</div>
<div style="align-self: flex-end;">子要素-4</div>
<div style="align-self: center;">子要素-5</div>
<div style="align-self: baseline;">子要素-6</div>
<div style="align-self: baseline; font-size: 200%;">子要素-7</div>
</div>
CSS
.lf {
margin-bottom: 16px;
}
.flex-s-01 {
display: flex;
padding: 10px;
background-color: pink;
border: 1px #333 solid;
}
.flex-s-01 div {
padding: 10px;
background-color: paleturquoise;
border: 1px #333 solid;
}
親要素:height: 200px;
子要素-1:align-self: auto;
子要素-2:align-self: stretch;
子要素-3:align-self: flex-start;
子要素-4:align-self: flex-end;
子要素-5:align-self: center;
子要素-6:align-self: baseline;
子要素-7:align-self: baseline; font-size: 200%;
フレックスレイアウトでは垂直方向の位置を指定する vertical-align を使用できません。Flex コンテナ(親要素)の align-items や Flex アイテム(子要素)の align-self を使用します。
HTML
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Flexboxサンプル(濱屋)</title>
<style>
body,div,h1,h2,h3,h4,h5,h6,pre,p,a,select,header,nav,main,section,footer {
padding: 0;
margin: 0;
font-size: 16px;
line-height: 1.6;
word-wrap: break-word;
box-sizing: border-box;
}
body {
font-family: "Hiragino Sans W3", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "メイリオ", "Meiryo", "MS Pゴシック", "MS PGothic", sans-serif;
}
.container {
max-width: 960px;
width: 100%;
margin: 0 auto;
display: flex;
flex-wrap: wrap;
padding: 10px;
border: #fff 1px solid;
}
header {
order: 1;
flex-basis: 100%;
display: flex;
align-items: flex-end;
background-color: #14736a;
}
header h1 {
flex-basis: 45%;
padding: 10px 0 0 20px;
}
header h1 img {
width: 20%;
}
header h1 span {
color: #fff;
font-size: 140%;
padding-left: 10px;
vertical-align: bottom;
}
header nav {
align-items: flex-end;
justify-content: flex-end;
flex-basis: 55%;
}
header nav ul {
list-style: none;
display: flex;
margin: 0 0 10px 0;
}
header nav ul li {
flex-basis: 22%;
margin-right: 10px;
}
header nav ul li a {
display: block;
line-height: 2;
font-size: 120%;
color: #000;
font-weight: bold;
text-align: center;
text-decoration: none;
background-color: #bffff9;
border-radius: 10px;
}
header nav ul li a:hover {
opacity: 0.6;
}
main {
order: 3;
flex-basis: calc(100% - 220px);
background-color: #ebfffd;
padding: 10px 20px 10px 20px;
}
main h2 {
font-size: 140%;
padding: 10px 0;
}
main article {
display: flex;
flex-wrap: wrap;
padding-bottom: 10px;
}
main article h3 {
flex-basis: 100%;
font-size: 140%;
}
main article div.img {
flex-basis: 30%;
}
main article div.img img {
width: 100%;
border: #ccc 1px solid;
border-radius: 10px;
}
main article div.dsc {
flex-basis: 70%;
}
main article div.dsc p {
font-size: 120%;
padding: 0 0 0 20px;
}
aside {
order: 2;
flex-basis: 180px;
padding: 20px;
background-color: #bffff9;
}
aside h2 {
font-size: 120%;
}
aside ul {
padding-left: 20px;
margin: 5px 0;
}
footer {
order: 4;
flex-basis: 100%;
text-align: center;
background-color: #14736a;
}
footer small {
line-height: 3;
font-size: 100%;
color: #fff;
}
</style>
</head>
<body>
<div class="container">
<header>
<h1>
<img src="images/flexbox-logo-01.png" alt="濱屋">
<span>世界のこだわり商品を販売</span>
</h1>
<nav>
<ul class="flex-a1-nav">
<li><a href="#">トップ</a></li>
<li><a href="#">商品情報</a></li>
<li><a href="#">企業情報</a></li>
<li><a href="#">お問合せ</a></li>
</ul>
</nav>
</header>
<main>
<h2>お勧め商品情報</h2>
<article>
<h3>シーサーの飾り物</h3>
<div class="img"><img src="images/flexbox-img-01.jpg" alt="沖縄のシーサー飾り"></div>
<div class="dsc">
<p>沖縄のシーサーの飾り物です。
シーサーは沖縄県などで伝説の獣像で魔除けの意味を持ち屋根の上に設置されることが多いとされています。
今回の商品はシーサーをベースにした飾り物で部屋の中に飾ることで魔除けとしても使えるかもしれません。</p>
</div>
</article>
<article>
<h3>インディアンの飾り物</h3>
<div class="img"><img src="images/flexbox-img-02.jpg" alt="アメリカのイオンディアン飾り"></div>
<div class="dsc">
<p>アメリカの先住民であるインディアンが作成した飾り物です。
この飾り物はアメリカのグランドキャニオンを拠点とするインディアンが作成しました。
作成したインディアンの話ではインディアンが信仰する大地の神が宿っているとのことです。</p>
</div>
</article>
</main>
<aside>
<h2>お知らせ</h2>
<ul>
<li>5月:GWお休み情報</li>
<li>4月:新型コロナ情報</li>
<li>4月:花見情報</li>
<li>1月:初売り情報</li>
</ul>
<h2>ニュース</h2>
<ul>
<li>ドイツの新型食器</li>
<li>ハワイ旅行とお土産</li>
<li>鬼滅の刃の海外展開</li>
</ul>
</aside>
<footer>
<small>Copyright© 2021 濱屋 All rights reserved.</small>
</footer>
</div>
</body>
</html>