質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

1664閲覧

Flexboxでの等幅のアイテム配置

t-cool

総合スコア71

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

1グッド

1クリップ

投稿2019/05/14 05:46

編集2019/05/14 06:45

CSS3のflexboxを使ったスタイルで、要素を50pxずつの幅で区切っていくデザインを考えています。

完成図は次のようなものです。

イメージ説明

コンテナ用にcontainerクラスを定義後、内側のアイテム用にitemクラスを定義しました。

アイテムの各要素のタグに幅を設定して作成しましたが、
より良い方法はないでしょうか?

ご助言いただけるとありがたいです。

html

1<!DOCTYPE html> 2<html> 3<head> 4<meta charset="utf-8" /> 5<title>flexbox</title> 6<style> 7.container { 8 display: flex; 9 justify-content: center; 10 align-items: center; 11 12 border: 1px solid #1b0303; 13 width: 250px; 14 height: 250px; 15 margin: auto; 16} 17 18.item{ 19 display: flex; 20 justify-content: center; 21 align-items: center; 22 background-color: azure; 23} 24</style> 25</head> 26<body> 27<div class="container"> 28 <div class="item" style="width:200px;height:200px"> 29 <div class="item" style="width:150px;height:150px;background-color: skyblue"> 30 <p class="item" style="width:100px;height:100px;background-color: aquamarine">Text</p> 31 </div> 32 </div> 33</div> 34</body> 35</html>
xjjojo👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

xjjojo

2019/05/14 06:12

CSSタグを追加すると回答が得られやすいと思います
t-cool

2019/05/14 06:46

ご助言ありがとうございます。CSSタグを追加しました。
xjjojo

2019/05/14 06:49

いえいえ~! いい方法がわかるといいですね(^_^)!
guest

回答1

0

ベストアンサー

質問者さんが実現したいことは、 calc 関数を用いることで実現できると思います(動作確認用リンク)。

HTML

1<div class="container"> 2 <div class="item"> 3 <div class="item" style="background-color: skyblue"> 4 <p class="item" style="background-color: aquamarine">Text</p> 5 </div> 6 </div> 7</div>

CSS

1.container { 2 display: flex; 3 justify-content: center; 4 align-items: center; 5 border: 1px solid #1b0303; 6 width: 250px; 7 height: 250px; 8 margin: auto; 9} 10 11.item { 12 --box-size: calc(100% - 50px); /* 追加 */ 13 display: flex; 14 justify-content: center; 15 align-items: center; 16 background-color: azure; 17 width: var(--box-size); /* 追加 */ 18 height: var(--box-size); /* 追加 */ 19}

投稿2019/05/14 06:46

s8_chu

総合スコア14731

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問