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

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

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

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

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

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

Q&A

1回答

8706閲覧

【ヘッダー】文字列を適切な部分で改行して2行にし、2行にした物を余白が均一になるように横に並べたい。追加で文字の大きさも適用したい。

NEMOTOSHOTA

総合スコア32

HTML5

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

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

0グッド

0クリップ

投稿2020/01/11 12:14

編集2020/01/11 12:24

0

0

 したいことの文面化

・ヘッダーの作成において特定の文字を2つずつ縦に表記し、余白が均一になるように横に6つ並べたい。
・文字1、文字Aをそれぞれ異なる大きさにしたい。

###【現状】
下記のコードですと、
paddingで指定している範囲内で横に6つ文字が並ぶように配置をすることができたのですが、

文字1文字A 文字2文字B 文字3文字C 文字4文字D 文字5文字E 文字6文字F

と、全ての文字列が横に表示されてしまっております。

HTML

1<header> 2 <div class = "header"> 3 <div class="header-title">POTEPAN CAMP</div> 4 5 <ul class ="header-title2"> 6 <li class = "header-title2-item"><span>文字1</span><span>文字A</span></li> 7 <li class = "header-title2-item"><span>文字2</span><span>文字B</span></li> 8 <li class = "header-title2-item"><span>文字3</span><span>文字C</span></li> 9 <li class = "header-title2-item"><span>文字4</span><span>文字D</span></li> 10 <li class = "header-title2-item"><span>文字5</span><span>文字E</span></li> 11 <li class = "header-title2-item"><span>文字6</span><span>文字F</span></li> 12 </ul> 13 </div> 14</header>

CSS

1.header { 2 padding-left:400px; 3 padding-right:450px; 4 5 6} 7 8.header-title{ 9 float:left; 10 font-size:27px; 11 padding :10px; 12 13} 14 15} 16 17 18.header-title2{ 19 text-align: center; 20 padding: 10px 0; 21 margin: 0 auto; 22 display: inline-block; 23} 24 25.header-title2-item{ 26 list-style: none; 27display: inline-block; 28margin: 0 20px; 29}

###【したいことの詳細】
上記の状態から、

文字1 文字2 文字3 文字4 文字5 文字6 文字A 文字B 文字C 文字D 文字E 文字F

というように、2行ずつ配置したいです。

行ったこと

<br>を使い改行したが、バランスよく改行ができなかった。

<li>の中にさらに<ul>を作り、文字1と文字Aをリスト表示させた結果、↓↓

HTML

1<li class = "header-title-item"> 2 <ul><span class ="header-title-item2">文字1</span> 3 <span>文字A</span> 4 </ul>

CSS

1 2.header-title-item{ 3 font-size: 14px; 4 list-style: none; 5 display: inline-block; 6 margin: 0 -20px; 7} 8 9.header-title-item2{ 10 text-align: center; 11 list-style: none; 12 display: block; 13 margin: 0 20px; 14} 15 16.header-title-item2 li{ 17 font-size: 10px; 18}

2行で表示されたのは良いが、

文字1 文字2 文字3 文字4 文字5 文字6 文字A 文字B文字C 文字D文字E 文字F

のように、文字列の長さの違いによって2行目の文字列にズレが生じてしまった。

また、文字の大きさも適用されていない状態です。

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

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

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

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

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

guest

回答1

0

・ヘッダーの作成において特定の文字を2つずつ縦に表記し、余白が均一になるように横に6つ並べたい。
・文字1、文字Aをそれぞれ異なる大きさにしたい。

まず、横並べはFlexboxを使うとシンプルになり、レイアウトの自由度も高いです。
ご希望の細かい部分はあまりよく把握できてませんが、下記のような感じでしょうか。

html

1<header> 2 <div class="header"> 3 <div class="header-title"> 4 POTEPAN CAMP 5 </div> 6 7 <ul class="header-title2"> 8 <li class="header-title2-item"><span>文字1</span><span>文字A</span></li> 9 <li class="header-title2-item"><span>文字2</span><span>文字B</span></li> 10 <li class="header-title2-item"><span>文字3</span><span>文字C</span></li> 11 <li class="header-title2-item"><span>文字4</span><span>文字D</span></li> 12 <li class="header-title2-item"><span>文字5</span><span>文字E</span></li> 13 <li class="header-title2-item"><span>文字6</span><span>文字F</span></li> 14 </ul> 15 </div> 16</header>

css

1.header { 2 padding-left: 400px; 3 padding-right: 450px; 4} 5.header-title { 6 font-size: 27px; 7 padding: 10px; 8} 9.header-title2 { 10 text-align: center; 11 padding: 10px 0; 12 display: inline-flex; 13} 14.header-title2-item { 15 list-style: none; 16 display: inline-flex; 17 flex-direction: column; 18 margin: 0 20px; 19} 20.header-title2-item > span:first-of-type { 21 font-size: 14px; 22} 23.header-title2-item > span { 24 font-size: 10px; 25}

動作確認用サンプル

padding-left: 400px; padding-right: 450px;
というように大きな余白を取っている意図が図りかねます。これだと画面幅が狭くなると文字が縦に並んでしまいます。
もし中央寄せを意図しているのなら、下記のような感じで。

css

1.header { 2/* padding-left: 400px; 3 padding-right: 450px; */ 4 max-width: 500px; /*内容に合わせて適宜修正してください*/ 5 margin: 0 auto; 6}

投稿2020/01/11 13:52

編集2020/01/11 14:05
hatena19

総合スコア34367

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.30%

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

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

質問する

関連した質問