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

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

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

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

HTML

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

Q&A

解決済

2回答

515閲覧

2列にしたタイトルの両端に均等にpngを貼り付けたい

necodaisuki

総合スコア1

CSS3

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

HTML

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

0グッド

0クリップ

投稿2021/10/15 20:59

前提・実現したいこと

html/CSSの勉強中で、架空のカフェサイトを制作しています。
見出しの左右横に幅40px、高さは中央揃えのアイコンのような画像を貼り付けたいのですが
なんとなくうまくできません。(目分量で測ってなんとなく数値を入れている状態)
きれいなコードを書き、画像を2行にしたテキストに対して、左右幅・上下高さともに均等に画像を配置したいです。

完成イメージ
★about★(これは一行ですが、テキストを2行にして左のようなイメージで左右に画像を並べたいです)

発生している問題・エラーメッセージ

エラー自体は出ていません

該当のソースコード

<h2 class="title"><span>about</span><span class="sub_title">お店について</span></h2> ```CSS ソースコード .title { margin-top: 150px; margin-bottom: 75px; text-align: center; }

.title span {
display: block;
position: relative;
}

h2 span {
font-size: 3rem;
}

h2 span.sub_title {
font-size: 1.1rem;
}

.title span:first-of-type::before {
content: url("../images/nikukyu.png");
/padding-right: 40px;/
position: absolute;
/top: 20px;/
transform: translate(-200%,50%);

}

.title span:first-of-type::after {
content: url("../images/nikukyu.png");
padding-left: 40px;
position: absolute;
/top: 20px;/
transform: translateY(50%);
}

### 試したこと コメントアウトをいくつかしていますが、paddingで左右40pxずつ余白をあけることはできたのですが、上下が均等でなかったり、右画像が下に落ちてしまいました。 ### 補足情報(FW/ツールのバージョンなど) 「about」のフォントサイズ指定は30px、「お店について」は11pxです。 Dreamweaverを使用していて、リセットCSSはnormalize.cssです。 yahooのリセットCSSがいいと聞いたのですが、初学者にも扱いやすいCSSはどちらか(または他にもあれば)教えていただけると幸いです。

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

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

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

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

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

guest

回答2

0

.title {
margin-top: 150px;
margin-bottom: 75px;
text-align: center;
position: relative;
/width: max-content;/
padding: 0 60px;
}

.title span {
display: block;

}

h2 span {
font-size: 3rem;
}

h2 span.sub_title {
font-size: 1.1rem;
}

.title::before, .title::after {
content: url("../images/nikukyu.png");
/width: 40px;
height: 40px;
/
position: absolute;
top: 60%;
transform: translateY(-50%)
}

.title::before {
left:400px;
}

.title::after {
right: 400px;
}

投稿2021/10/16 02:05

necodaisuki

総合スコア1

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

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

necodaisuki

2021/10/16 02:12

すみません、解決できたと思ったのですが、自分なりに考えてみたものだとブラウザ幅を拡大縮小するとアイコンが動き、解決には至りませんでした。
guest

0

ベストアンサー

HTMLの変更が可能なら、中身のspan要素をdivタグで囲んで、flexで横並びにするのが簡単そうです。

html

1<h2 class="title"> 2 <div> 3 <span>about</span> 4 <span class="sub_title">お店について</span> 5 </div> 6</h2>

css

1.title { 2 margin-top: 150px; 3 margin-bottom: 75px; 4 text-align: center; 5 display: flex; 6 justify-content: center; 7 align-items: center; 8 gap: 10px; 9} 10h2 span { 11 font-size: 3rem; 12} 13h2 span.sub_title { 14 font-size: 1.1rem; 15} 16.title::before, .title::after { 17 content: url("https://placehold.jp/40x40.png"); 18 width: 40px; 19 height: 40px; 20}

現状のHTMLを変更しないなら、
position: absolute; で配置するといいでしょう。

css

1.title { 2 margin: 150px auto 75px auto; 3 text-align: center; 4 position: relative; 5 width: max-content; 6 padding: 0 40px; 7} 8.title span { 9 display: block; 10} 11h2 span { 12 font-size: 3rem; 13} 14h2 span.sub_title { 15 font-size: 1.1rem; 16} 17.title::before, .title::after { 18 content: url("https://placehold.jp/40x40.png"); 19 width: 40px; 20 height: 40px; 21 position: absolute; 22 top: 50%; 23 transform: translatey(-50%) 24} 25.title::before { 26 left: 0; 27} 28.title::after { 29 right: 0; 30}

投稿2021/10/16 00:05

編集2021/10/16 00:21
hatena19

総合スコア34075

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

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

necodaisuki

2021/10/16 02:15 編集

早急にご回答いただきありがとうございましました。 ご提案いただいた元のHTMLを保持したままCSSを変更したところ、コンテンツの左端によってしまい(中央に寄せたい)、そこから色々試してみたのですが、まだ解決に至っていません。一瞬自分の思い描いていたデザインに近づいたのでベストアンサーにしてしまいましたが、もしよろしければ、また一緒に考えていただけると嬉しいです。よろしくお願いいたします。
necodaisuki

2021/10/16 02:24

なんどもすみません。あのあと、擬似要素のleftとrightを0に戻し、 margin: 150px auto 75px auto; を入力したところ、きちんと反映されました!(autoを0と勘違いしてmargin-top,bottomを指示すればいいと勝手に解釈してしまっていました。すみませんでした。) 本当にありがとうございました。
hatena19

2021/10/16 02:29

margin: 150px auto 75px auto; は、左右に余白を均等に割り当てるという設定ですので、ブロックレベル要素を中央寄せするときによく使います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問