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

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

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

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

Bootstrap

BootstrapはウェブサイトデザインやUIのWebアプリケーションを素早く 作成する可能なCSSフレームワークです。 Twitter風のデザインを作成することができます。

Thymeleaf

Thymeleaf(タイムリーフ)とは、Java用のテンプレートエンジンで、特定のフレームワークに依存せず使用することが可能です。

CSS

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

Q&A

0回答

3106閲覧

Thymeleaf(th:each)に適応した、子要素数によって可変なレイアウト

K-actus

総合スコア22

HTML5

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

Bootstrap

BootstrapはウェブサイトデザインやUIのWebアプリケーションを素早く 作成する可能なCSSフレームワークです。 Twitter風のデザインを作成することができます。

Thymeleaf

Thymeleaf(タイムリーフ)とは、Java用のテンプレートエンジンで、特定のフレームワークに依存せず使用することが可能です。

CSS

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

0グッド

0クリップ

投稿2021/07/27 09:03

編集2021/07/28 08:56

こんにちは。
Spring Bootについて初学者なので拙いところもあると思いますが、よろしくお願いします。

実現したいこと

Thymeleafで以下のようなレイアウトを実現したいです。

説明すると、A,B共に共通項目でGroupingされたListになっていて、
リストごとに横に並べられ、その中にリストの中のデータが子要素として配置されています。(レイアウトの都合上、画像ではリストの中身は省略しています。)
データの数はリストによって異なるので、横の長さは揃えていますが高さがそれぞれ異なります。

現状はAのListを<th:each>で列挙してその後BのListを<th:each>で再び列挙するような書き方にしていますがそれだとうまく実現出来ないので、それ以外にどう書くか、またCSSでどのように再現すればいいかがわかりません。

###コード
再現は出来ていませんが、以前tableを使って書いていたときのhtmlを載せておきます。

HTML

1<div class='text-nowrap'> 2<table class="table table-bordered" > 3 <tr> 4 <td valign="top" th:each="group: ${HogeMap}"> 5 <th:block th:each="item: ${group.value}"> 6 <!-- 中略 --> 7 </th:block> 8 </td> 9 </tr> 10 <tr> 11 <td valign="top" th:each="group: ${FugaMap}"> 12 <th:block th:each="item: ${group.value}"> 13 <!--中略--> 14 </th:block> 15 </td> 16 </tr> 17</table> 18</div>

この場合レイアウトが画像でいう一番データの多いAとBが基準となった升目になるため、データの少ないAやBの要素には大きな空白が存在していました。

以下、現在のソースとそのレイアウトです。

HTML

1<div class='text-nowrap'> 2<div class = "BlockPart" th:each="group: ${HogeMap}"> 3 <th:block th:each="item: ${group.value}"> 4 <!--中略--> 5 </th:block> 6 </div><br> 7 <div class = "BlockPart" th:each="group: ${FugaMap}"> 8 <th:block th:each="item: ${group.value}"> 9 <!--中略--> 10 </th:block> 11 </div> 12</div>

CSS

1.SSPart{ 2 display: inline-block; 3 border-style: solid; 4 }


上の画像の状態から隙間を無くしたい(上方向に詰めたい)です。

何か綺麗な書き方があれば教えてほしいです。よろしくお願いします。

補足情報

Eclipse 2020 Java FullEdition
AmazonCorretto jdk15.0.2_7
SpringBoot 2.4.3
MySQL 8.0.23
Windows10 Pro 20H2

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

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

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

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

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

momotuwo

2021/07/27 09:43

現状だとほとんど丸投げ状態になってしまっているので 今時点でどのようなhtmlになっていて、どのようなListをサーバ上保持しているのか 理想の画面とどのように違うものが表示されているのかを記載しましょう。
m.ts10806

2021/07/27 11:12

まず静的HTML(モック)作っては。 いきなり動的には作れませんよ。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問