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

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

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

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

div

HTMLの<div>タグです。<div>要素は特に意味を持っていません。ひとかたまりのコンテンツに使用されるか、(セマンティックとして)他の要素では記述できないコンテンツに使用されることが多いです。

Q&A

解決済

2回答

983閲覧

cssでのdiv class=""タグの処理方法

maruchan20

総合スコア1

CSS3

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

div

HTMLの<div>タグです。<div>要素は特に意味を持っていません。ひとかたまりのコンテンツに使用されるか、(セマンティックとして)他の要素では記述できないコンテンツに使用されることが多いです。

0グッド

0クリップ

投稿2020/10/04 08:28

前提・実現したいこと

サイトを製作中ですが、基本的な事でつまづいてしまいました。

<div></div>で一つのまとまりだと思っていたので、cssで.logoを選択した際はclass="logo"の中のimgに処理がなされるものだと思っていましたが、imgには全く反応されず、<button class="bunner-btn">Explore More</button>の方に処理されました。何故でしょうか。class="logo"を選択したのに何故class="bunner-btn"の方に処理がなされるのでしょうか?教えていただきたいです。

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

エラーメッセージ

該当のソースコード

(ここからhtml)

<div class="container"> <div class="banner"> <div class="logo"> <a href="#"><img src="images/logo.png"></a> </div> <div class="btn-wrapper"> <button class="bunner-btn">Explore More</button> </div> </div>

(ここからcss)

  • {
    margin: 0;
    padding: 0;

}

.container {
font-family: 'Monstserrat', sans-serif;
}

.banner {
width: 100%;
height: 100vh;
background: linear-gradient(rgba(0, 0, 0, .7), rgba(0, 0, 0, .8)), url(images/background.jpg) center no-repeat;
background-size: cover;
}
.logo {
height: 80px;
width: 80px;
}

試したこと

補足情報(FW/ツールのバージョンなど)

イメージ説明

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

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

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

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

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

guest

回答2

0

ベストアンサー

まず、記述されたソースコードだけを見ると閉じdivがひとつ足りません。
このままだと<div class="container">に対する</div>がないように思います。

CSSについては、

<div></div>で一つのまとまりだと思っていたので、cssで.logoを選択した際はclass="logo"の中のimgに処理がなされるものだと思っていましたが

とありますが、<div></div>でひとつのまとまり、という認識は間違っていません。
しかしCSSで指定している…

CSS

1.logo { 2 height: 80px; 3 width: 80px; 4}

は、logoクラスを持つ要素に対してのみ適用するという意味になります。
従って、<div class="logo"></div>の中に含まれる子要素や孫要素に関しては適用されません。
子要素…今回の場合は<img>に対してこのCSSを適用したければ、次のように書くと適用されます。

パターン① HTML側を変える

現在<div class="logo">としているものを直接<img>に付け替えてやれば正常に動きます。

HTML

1<div class="container"> 2 <div class="banner"> 3 <div> <!--ここのclassを外してimgタグに付け替える--> 4 <a href="#"><img class="logo" src="images/logo.png"></a> 5 </div> 6 <div class="btn-wrapper"> 7 <button class="bunner-btn">Explore More</button> 8 </div> 9 </div> 10</div> <!--この閉じタグは追加したものです-->

パターン② CSS側を変える

こちらはHTMLコードはそのままにCSSだけを変更します。

CSS

1.logo img { 2 height: 80px; 3 width: 80px; 4}

このように記述した場合は、logoクラスを持つ要素の子以下のimg要素に対して適用する、
という書き方になります。

先に回答をしている方の紹介しているサイト様にいろいろな書き方が書いてあると思いますので、
そちらもご参考頂きながらご確認いただければと思います。

ちなみに、このソースコードをそのままコピペしてみましたが

<button class="bunner-btn">Explore More</button>

こちらにlogoのCSSが適用されることはありませんでした。
buttonタグのサイズは文字数、文字の大きさによって自動的に調整されるので
その都合でそれらしく見えたのではないでしょうか……。

投稿2020/10/05 01:54

phiar_poet

総合スコア230

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

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

maruchan20

2020/10/05 02:13

とてもご丁寧にご回答いただきありがとうございました!phiar_poetさんのおかげで不明点が解決しました、、!すごく納得できました。ありがとうございました(^^)
guest

0

このような場合何に対してそのスタイルを明確化する必要があります。

【CSS】隣接セレクタ 直下セレクタ 間接セレクタの違いをわかりやすく解説!

class指定を簡略化したい場合であれば上記URLのような表記方法がございます。

投稿2020/10/04 08:50

kuma_kuma_

総合スコア2506

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

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

maruchan20

2020/10/05 01:59

回答いただきありがとうございます!URLとても参考になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問