teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

10

修正

2020/06/03 07:06

投稿

new1ro
new1ro

スコア4528

answer CHANGED
@@ -57,4 +57,4 @@
57
57
 
58
58
  異なる単位の数字を計算するようなシチュエーションで便利なことがよくあります。
59
59
 
60
- 「44px」など数値だけ指定されていると、なぜその数値になっているのかわからずデザインを作るときに数字の根拠が持てないですが、calc()を使って指定していると文字サイズだけ変えたり余白分のpx数だけ変更することで悩まずに済むので楽な場合もあります。
60
+ 「44px」など数値だけ指定されていると、なぜその数値になっているのかわからずデザインを作るときや、デザインラフがない状況でレスポンシブ対応をしなければならないときに数字の根拠が持てないですが、calc()を使って指定していると、悩まずに済む場合もあります。

9

修正

2020/06/03 07:06

投稿

new1ro
new1ro

スコア4528

answer CHANGED
@@ -57,4 +57,4 @@
57
57
 
58
58
  異なる単位の数字を計算するようなシチュエーションで便利なことがよくあります。
59
59
 
60
- 43px」など数値だけ指定されていると、なぜその数値になっているのかわからずデザインを作るときに数字の根拠が持てないですが、calc()を使って指定していると文字サイズだけ変えたり、余白分のpx数だけ変更することで悩まずに済むので楽な場合もあります。
60
+ 44px」など数値だけ指定されていると、なぜその数値になっているのかわからずデザインを作るときに数字の根拠が持てないですが、calc()を使って指定していると文字サイズだけ変えたり、余白分のpx数だけ変更することで悩まずに済むので楽な場合もあります。

8

修正

2020/06/03 07:03

投稿

new1ro
new1ro

スコア4528

answer CHANGED
@@ -45,7 +45,7 @@
45
45
  .container {
46
46
  margin: 0 auto;
47
47
  width: 640px;
48
- max-width: calc(100% - 15px - 15px); /* 15pxは左右の余白 */
48
+ max-width: calc(100vw - 15px - 15px); /* 15pxは左右の余白 */
49
49
  }
50
50
  ```
51
51
 

7

ラッパー要素での活用方法を追記しました。

2020/06/03 07:01

投稿

new1ro
new1ro

スコア4528

answer CHANGED
@@ -41,6 +41,15 @@
41
41
  ```
42
42
 
43
43
  ```CSS
44
+ /* .containerなどラッパー要素について、ブレークポイントを使わなくてもこの記述だけでOKかもしれません。 */
45
+ .container {
46
+ margin: 0 auto;
47
+ width: 640px;
48
+ max-width: calc(100% - 15px - 15px); /* 15pxは左右の余白 */
49
+ }
50
+ ```
51
+
52
+ ```CSS
44
53
  /* 無理やり感がありますが.. */
45
54
  /* 3行の高さを持つ要素の高さの半分だけ上方向にはみ出すような場合 (行の高さ * 3行、上下のpaddingは20px) */
46
55
  top: calc(-1 * ((1em + 5px) * 3 + 20px + 20px) / 2);

6

修正

2020/06/03 07:00

投稿

new1ro
new1ro

スコア4528

answer CHANGED
@@ -6,7 +6,7 @@
6
6
  例を挙げると以下です。
7
7
 
8
8
  ```CSS
9
- /* line-heightのルールを指定 */
9
+ /* line-heightのルールを指定。SCSSの場合は「calc(...)」の記述を変数化しています。 */
10
10
  line-height: calc(1em + 10px);
11
11
  ```
12
12
 

5

修正

2020/06/03 06:56

投稿

new1ro
new1ro

スコア4528

answer CHANGED
@@ -11,7 +11,7 @@
11
11
  ```
12
12
 
13
13
  ```CSS
14
- /* 余白ありの3分割の横幅を指定 (display: grid;でもいいですが) */
14
+ /* 余白ありの3分割の横幅を指定 (display: grid;でもいいですが、IE11では専用の記述が必要なので) */
15
15
  flex-grow: 0;
16
16
  flex-shrink: 0;
17
17
  flex-basis: calc((100% - 20px - 20px) / 3);

4

修正

2020/06/03 06:54

投稿

new1ro
new1ro

スコア4528

answer CHANGED
@@ -19,7 +19,7 @@
19
19
 
20
20
  ```CSS
21
21
  /* 円の中にフォントアイコンがあるような場合。 */
22
- /* padding: 1.25em」で指定すると若干上にズレる場合があるのでflexで上下左右中央配置をしたい */
22
+ /* paddingで内側の余白を指定すると若干上にズレる場合があるのでdisplay: flex;で上下左右中央配置をしたい */
23
23
  .btn-circle {
24
24
  /* 子要素を上下左右中央配置 */
25
25
  display: flex;
@@ -32,8 +32,8 @@
32
32
  border-radius: 50%;
33
33
 
34
34
  /* 文字サイズ (=アイコンのサイズ) + 左右の余白 */
35
- width: calc(1em + 1.25em + 1.25em); /* 文字の横幅 (=アイコンのサイズ) + 左右の余白 */
35
+ width: calc(1em + 0.75em + 0.75em); /* 文字の横幅 (=アイコンのサイズ) + 左右の余白 */
36
- height: calc(1em + 1.25em + 1.25em); /* 文字の高さ (=アイコンのサイズ) + 左右の余白 */
36
+ height: calc(1em + 0.75em + 0.75em); /* 文字の高さ (=アイコンのサイズ) + 左右の余白 */
37
37
  }
38
38
  .btn-circle > .icon {
39
39
  /* フォントアイコン */

3

円の中にフォントアイコンがあるシチュエーションを追記しました。

2020/06/03 06:39

投稿

new1ro
new1ro

スコア4528

answer CHANGED
@@ -18,6 +18,29 @@
18
18
  ```
19
19
 
20
20
  ```CSS
21
+ /* 円の中にフォントアイコンがあるような場合。 */
22
+ /* 「padding: 1.25em」で指定すると若干上にズレる場合があるのでflexで上下左右中央配置をしたい */
23
+ .btn-circle {
24
+ /* 子要素を上下左右中央配置 */
25
+ display: flex;
26
+ align-items: center;
27
+ justify-content: center;
28
+
29
+ /* 余計な余白が生じないようにする + 角丸の指定 */
30
+ line-height: 1;
31
+ letter-spacing: 0;
32
+ border-radius: 50%;
33
+
34
+ /* 文字サイズ (=アイコンのサイズ) + 左右の余白 */
35
+ width: calc(1em + 1.25em + 1.25em); /* 文字の横幅 (=アイコンのサイズ) + 左右の余白 */
36
+ height: calc(1em + 1.25em + 1.25em); /* 文字の高さ (=アイコンのサイズ) + 左右の余白 */
37
+ }
38
+ .btn-circle > .icon {
39
+ /* フォントアイコン */
40
+ }
41
+ ```
42
+
43
+ ```CSS
21
44
  /* 無理やり感がありますが.. */
22
45
  /* 3行の高さを持つ要素の高さの半分だけ上方向にはみ出すような場合 (行の高さ * 3行、上下のpaddingは20px) */
23
46
  top: calc(-1 * ((1em + 5px) * 3 + 20px + 20px) / 2);

2

修正

2020/06/03 06:37

投稿

new1ro
new1ro

スコア4528

answer CHANGED
@@ -1,3 +1,6 @@
1
+ 書籍については「便利な使い方」という形で紹介しているものはまだ見たことがないです。
2
+ が、私はよく使うので、以下に例を挙げてみます。
3
+
1
4
  > ネットで検索はしましたが、思ったほど使いみちは少ないですね。
2
5
 
3
6
  例を挙げると以下です。
@@ -15,8 +18,9 @@
15
18
  ```
16
19
 
17
20
  ```CSS
18
- /* 要素の高さを算出しheightに指定るような場合 */
21
+ /* 無理やり感がありまが.. */
22
+ /* 3行の高さを持つ要素の高さの半分だけ上方向にはみ出すような場合 (行の高さ * 3行、上下のpaddingは20px) */
19
- height: calc(1em + 10px + 20px + 20px);
23
+ top: calc(-1 * ((1em + 5px) * 3 + 20px + 20px) / 2);
20
24
  ```
21
25
 
22
26
  異なる単位の数字を計算するようなシチュエーションで便利なことがよくあります。

1

修正

2020/06/02 12:51

投稿

new1ro
new1ro

スコア4528

answer CHANGED
@@ -2,16 +2,22 @@
2
2
 
3
3
  例を挙げると以下です。
4
4
 
5
+ ```CSS
5
6
  /* line-heightのルールを指定 */
6
7
  line-height: calc(1em + 10px);
8
+ ```
7
9
 
10
+ ```CSS
8
11
  /* 余白ありの3分割の横幅を指定 (display: grid;でもいいですが) */
9
12
  flex-grow: 0;
10
13
  flex-shrink: 0;
11
14
  flex-basis: calc((100% - 20px - 20px) / 3);
15
+ ```
12
16
 
17
+ ```CSS
13
18
  /* 要素の高さを算出しheightに指定するような場合 */
14
19
  height: calc(1em + 10px + 20px + 20px);
20
+ ```
15
21
 
16
22
  異なる単位の数字を計算するようなシチュエーションで便利なことがよくあります。
17
23