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

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

ただいまの
回答率

87.80%

画像とテキストを横並びにしたい

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 670

score 1

横並びにしたいです

現在スマホサイトを制作しております。
以下画像のようなレイアウトにしたいのですがなにがおかしいかわからず教えてほしいです。

【理想】
理想
【現状】
現状

該当のソースコード

<div class="FAQlist">
 <div class="FAQqustion">
  <img src="/img/faq/Q.png" alt="">
  <p>テキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキスト</p>
 </div>
 <div class="FAQAnswer">
  <img src="/img/faq/A.png" alt="">
  <div class="FAQAnswer02">
   <p>テキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキスト</p>
  </div>
 </div>
</div>
.FAQlist{
    margin: 0.5rem 1rem;
}

.FAQqustion{
    background-color: #efefef;
    border-radius:1rem;
    margin: 0.5rem;
    padding: 0.5rem;
}
.FAQqustion p{
    display:inline-block;
}
.FAQqustion img{
    width: 10%;
    height: auto;
    margin: 0.5rem;
    display:inline-block;
}
.FAQAnswer{
    margin: 0.5rem;
}
.FAQAnswer02{
    display:inline-block;
}
.FAQAnswer img{
    width: 10%;
    margin: 0.5rem;
    display:inline-block;
}

QとAが違うのはクラスの付け方が違うのかなと思ったのですがどうにもならずにこうなってます。inline-blockがなぜ効かないかがわからず途方に暮れています。
作業環境はWindows10・Dreamweaver(21)・chromeで行っております。ブラウザプレビューはDreamweaverの機能を使用しています。
flexを使用した場合は画像が縦長になってしまい、table-cellを使用したら上ぞろえになりませんでした。inline-blockは横並びにならずマーキングの仕方かタグの選び方が違うのかわかりませんでした。
中身がぐちゃぐちゃしているので申し訳ないです。素人すぎて調べてもわからず何がいけないがさっぱりわかりません。どうかよろしくお願いします。

ちなみに
【flexを使用した場合】
flexを使用

.FAQlist{
    margin: 0.5rem 1rem;
}

.FAQqustion{
    background-color: #efefef;
    border-radius:1rem;
    margin: 0.5rem;
    padding: 0.5rem;
    display:flex;
}
.FAQqustion p{
}
.FAQqustion img{
    width: 10%;
    height: auto;
    margin: 0.5rem;
}
.FAQAnswer{
    margin: 0.5rem;
    display:flex;
}
.FAQAnswer02{
}
.FAQAnswer img{
    width: 10%;
    margin: 0.5rem;
}

【table-cellを使用した場合】
テーブルセル

.FAQlist{
    margin: 0.5rem 1rem;
}

.FAQqustion{
    background-color: #efefef;
    border-radius:1rem;
    margin: 0.5rem;
    padding: 0.5rem;
    display: table;
}
.FAQqustion p{
    display: table-cell;
}
.FAQqustion img{
    width: 100%;
    height: auto;
    margin: 0.5rem;
    display: table-cell;
}
.FAQAnswer{
    margin: 0.5rem;
    display: table;
}
.FAQAnswer02{
    display: table-cell;
}
.FAQAnswer img{
    width: 100%;
    margin: 0.5rem;
    display: table-cell;
}

どれも解決策がわからずに今に至ります。マーキングがいけないのか指定の仕方がおかしいのか記述が抜けているのか全部なのかわからず申し訳ございません。どうかご教授お願い致します。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • itzuakniami123

    2020/11/11 16:40 編集

    flexを使用したと書いてありますが、どの部分に適用しましたか?
    .FAQqustion と .FAQAnswerにdisplay:flexを適用したが要素が上ぞろえにならないという意味ですか?

    キャンセル

  • taki00000

    2020/11/11 17:07

    おっしゃるクラスに使用したのですが、なぜか画像がpタグの大きさに合わせて縦長に変形してしまって解決策がわからずに断念しました。上ぞろえにならなかったのはdisplay:table-cellを使用した場合ですね。

    キャンセル

回答 2

checkベストアンサー

0

下記のCSSでどうですか。
50pxの部分は画像のサイズに合わせてください。

.FAQlist{
  margin: 0.5rem 1rem;
}
.FAQlist > div {
  display: flex;
  margin: 0.5rem;
  padding: 0.5rem;
}
.FAQlist > div > img {
  flex: 0 0 50px;
  height: 50px;
  margin: 0.5rem;
}

.FAQqustion{
  background-color: #efefef;
  border-radius:1rem;
}

HTMLは全角空白がありましたので半角空白に修正してます。
また、<div class="FAQAnswer02">ブロックは不要なので削除してます。

CodePenサンプル

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/11/11 18:25

    回答ありがとうございました。flexをしっかり理解しておらずFlexboxは縦も高さもないのでflex-directionで指定しないといけないということを今回初めてしりました(flex: 0 0 50px;←この記述の意味が分からず調べました)
    またコードも簡潔になっており無意味なマーキングもなくなっており目から鱗でした。なかなか他人のコードを見る機会がなかったので大変参考になりました。ありがとうございました

    キャンセル

0

画像がpタグの大きさに合わせて縦長に変形してしまう

原因

.FAQqustion img{
  width: 10%;
  height: auto;
}


高さをきちんと指定していないからです。

また、width:10%;という表記もまずいと思います。
画面サイズを変えていったときに、その親要素(.FAQqustion)に依存する形になるので。
画像サイズはちゃんとpx指定してあげてください。

また、HTMLですが<div>の閉じ忘れがあります。

正しくは

<div class="FAQlist">
    <div class="FAQqustion">
        <img src="/img/faq/Q.png" alt="">
        <p>テキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキスト</p>
    </div><!-- FAQqustion -->

    <div class="FAQAnswer">
         <img src="/img/faq/A.png" alt="">
        <div class="FAQAnswer02">
            <p>テキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキスト</p>
        </div><!-- FAQAnswer02 -->
    </div><!-- FAQAnswer -->

</div><!-- FAQlist -->

面倒だとは思いますが、最初のうちは何のid名やclass名の閉じタグかコメントアウトすると良いでしょう。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/11/11 17:28

    すみません。スマホサイト用に作っていると最初に記述するべきでした。スマホサイトもpx指定の方がいいですかね?小さくなりすぎても大きくなりすぎてもいけないかなと思ってパーセントを使っていたんですが…。
    divは閉じ忘れてますね。申し訳ございません。

    キャンセル

  • 2020/11/11 17:36

    > スマホサイトもpx指定の方がいいですかね?

    メディアクエリを使って、スマホサイト用とPC用でサイズを変更するか、vw単位指定するかですね。

    キャンセル

  • 2020/11/11 17:40

    Googleのデバッグモードで見れば一目でわかると思いますが、スマホサイト用に作っていると言えど、機種によって全体の横幅サイズは違ってくるわけです。
    親要素である.FAQqustionのwidthの10%が画像サイズになる(=親要素のwidthに依存する)ので…。
    レイアウトが崩れる原因にもなりかねないので、できるだけpx指定してあげてください。

    キャンセル

  • 2020/11/11 18:17

    アドバイスありがとうございます!
    スマホサイトのみなので今後はpx指定したいと思います。

    キャンセル

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

  • ただいまの回答率 87.80%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る