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

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

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

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

CSS

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

CSSフレームワーク

CSSフレームワークは、Webページのスタイルを指定する言語であるCSSを容易に構築するためのツールです。ツイッター社が開発した「Bootstrap」や段組レイアウトが可能な「Foundation」など様々なCSSフレームワークがあります。

Q&A

解決済

2回答

207閲覧

長い文字を画像の上に表示させる方法をご教授ください。

退会済みユーザー

退会済みユーザー

総合スコア0

CSS3

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

CSS

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

CSSフレームワーク

CSSフレームワークは、Webページのスタイルを指定する言語であるCSSを容易に構築するためのツールです。ツイッター社が開発した「Bootstrap」や段組レイアウトが可能な「Foundation」など様々なCSSフレームワークがあります。

0グッド

0クリップ

投稿2024/03/21 05:36

実現したいこと

下記画像の「文字数7■■■」が、改行させずに、ピンク色の画像の範囲に納まるように表示させる方法を教えてください。
イメージ説明

発生している問題・分からないこと

現状は、下記のように、右側にはみ出しています。
イメージ説明

該当のソースコード

cssとhtmlタグ

1 section.departmentBox { 2 display: flex; 3 flex-wrap: wrap; 4 list-style: none; 5 padding: 0; 6 max-width: 930px; 7} 8 9section.departmentBox div { 10 position: relative; 11 width:48%; 12 margin: min(1%, 5px); 13} 14 15section.departmentBox p { 16 text-align: center; 17 white-space: nowrap; 18 position: absolute; 19 font-size: clamp(1.1rem, calc(2vw),5rem); 20 font-weight: bold; 21 padding: 10%; 22 width:80%; 23 top: 50%; 24 left: 50%; 25 transform: translate(-50%, -50%); 26 background:rgba(255,255,255,0.3); 27} 28 29section.departmentBox a { 30 color: black; 31} 32 33<section class="departmentBox"> 34 <div> <a href="<?php echo esc_url(home_url('/')); ?>test/"> <img src="<?php echo esc_url(home_url('/')); ?>wp-content/uploads/2024/03/練習1.jpg"> 35 <p>文字数4</p> 36 </a> 37 </div> 38 39 <div> <a href="<?php echo esc_url(home_url('/')); ?>test/"> <img src="<?php echo esc_url(home_url('/')); ?>wp-content/uploads/2024/03/練習2.jpg"> 40 <p>文字数5■</p> 41 </a> </div> 42 43 <div> <a href="<?php echo esc_url(home_url('/')); ?>test/"> <img src="<?php echo esc_url(home_url('/')); ?>wp-content/uploads/2024/03/練習3.jpg"> 44 <p>文字数7■■■■</p> 45 </a> </div> 46 <div> <a href="<?php echo esc_url(home_url('/')); ?>test/"> <img src="<?php echo esc_url(home_url('/')); ?>wp-content/uploads/2024/03/練習4.jpg"> 47 <p>文字数5■</p> 48 </a> </div> 49 50</section>

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

ネットなどで調べて、文字を画像の上に重ねる、文字を中央に表示させるまではできました。
しかし、長い文字だと、画像を突き抜けてしまいます。

補足

特になし

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

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

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

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

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

Refrain

2024/03/21 05:48

背景の色は`<img>`によるものと思えば良いでしょうか?
退会済みユーザー

退会済みユーザー

2024/03/21 06:06

はい、その通りです。 記載がなく、申し訳ありません。
guest

回答2

0

ベストアンサー

HTML側の構成を見直した案を提案します。
他にも画像を使わずにborderを使用して外周の枠を表現するのも良いかもです。

html

1<section class="department-list"> 2 <div class="department-item"> 3 <a href="" class="department-item-link"> 4 <img src="test.jpg" class="department-item-image"> 5 <p class="department-item-text">文字数4</p> 6 </a> 7 </div> 8 <div class="department-item"> 9 <a href="" class="department-item-link"> 10 <img src="test.jpg" class="department-item-image"> 11 <p class="department-item-text">文字数5■</p> 12 </a> 13 </div> 14 <div class="department-item"> 15 <a href="" class="department-item-link"> 16 <img src="test.jpg" class="department-item-image"> 17 <p class="department-item-text">文字数7■■■■</p> 18 </a> 19 </div> 20 <div class="department-item"> 21 <a href="" class="department-item-link"> 22 <img src="test.jpg" class="department-item-image"> 23 <p class="department-item-text">文字数5■</p> 24 </a> 25 </div> 26</section>

css

1.department-list { 2 display: flex; 3 flex-wrap: wrap; 4 padding: 0; 5 max-width: 930px; 6} 7.department-item { 8 display: flex; align-items: center; justify-content: center; 9 width: 48%; 10 margin: min(1%, 5px); 11} 12.department-item-link { 13 display: grid; grid-template-areas: 'item'; 14 color: black; 15 width: auto; 16} 17.department-item-text { 18 display: flex; align-items: center; justify-content: center; 19 grid-area: item; 20 white-space: nowrap; 21 font-size: clamp(1.1rem, calc(2vw), 5rem); 22 font-weight: bold; 23 margin: auto; 24 width: 80%; height: 80%; 25 background:rgba(255,255,255,0.3); 26} 27.department-item-image { 28 grid-area: item; 29}

投稿2024/03/21 06:27

Refrain

総合スコア532

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

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

退会済みユーザー

退会済みユーザー

2024/03/21 07:15

回答ありがとうございます。 試したところ問題が解決しました。 2時間ほど、確認してからベストアンサーに選ばせていただきます。
Refrain

2024/03/21 08:29

解決して何よりです。
退会済みユーザー

退会済みユーザー

2024/03/21 09:13

無事、本番環境にも移植出来ました。 大変助かりました。
guest

0

一例ですがsection.departmentBox pについては親要素と同じサイズ(height: 100%; width: 100%;)とし、追加でdisplay: flex; align-items: center; justify-content: center;を振ってセンタリングしてみてはいかがですか?
個人的にpositionなどを使った位置揃えなどはあまり良い思い出が無いもので…

投稿2024/03/21 06:04

Refrain

総合スコア532

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

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

退会済みユーザー

退会済みユーザー

2024/03/21 07:15

回答ありがとうございます。試してみましたが解決できませんでした。 画像が貼れなくて、イマイチ伝わりにくいですが 画像の上に、文字が重ならずに表示されてしまいます。 緑色の枠 青色の枠 桃色の枠 黄色の枠 文字数7 文字数5■ ■■■ ※おそらく緑色の枠の文字数4と青色の文字数5■は桃色の枠と黄色の枠の下にあると思われます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問