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

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

新規登録して質問してみよう
ただいま回答率
85.35%
レスポンシブWebデザイン

レスポンシブWebデザイン(RWD)は、スクリーンのサイズ、プラットフォーム、オリエンテーションに基づいて様々なデバイスで最適のサイトを生成するのウェブデザインとその開発のアプローチ方法を呼びます。

HTML

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

CSS

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

Q&A

解決済

2回答

312閲覧

width481以上からの閲覧時にfloatする

退会済みユーザー

退会済みユーザー

総合スコア0

レスポンシブWebデザイン

レスポンシブWebデザイン(RWD)は、スクリーンのサイズ、プラットフォーム、オリエンテーションに基づいて様々なデバイスで最適のサイトを生成するのウェブデザインとその開発のアプローチ方法を呼びます。

HTML

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

CSS

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

0グッド

0クリップ

投稿2020/02/26 03:01

編集2020/02/26 04:26

初心者ですが、宜しくお願いします。

現在、

HTML

<div class="A"> <p><img src="~.png" width="80" height="100" alt=""/></p> <p class="B">~~です。</p> </div> <div class="A">  <p><img src="~.png" width="80" height="100" alt=""/></p>  <p class="B">~~~です。</p> </div>

CSS

div.A p { display: table-cell ; vertical-align: middle ; margin: 0 ; }

として、

【画像】【文章】
【画像】【文章】

と表示させています。
(width:480(スマホレベル)からはこのままでいいのですが、)
これを min-width:481px でfloatして、

【画像】【文章】【画像】【文章】

と表示させたいと思っています。
CSSは、
@media screen and (min-width:481px)
で指定であっていますでしょうか。
また、その分をもう一度書くのでしょうか。

試しに、先述のCSSの後に

@media screen and (min-width:481px) { div.A p { display: table-cell; vertical-align: middle; margin: 0; float: left; width: 50%; } }

を入れてみたところ、全く上手く行きませんでした。

正しいやり方と、cleafixの書き方を教えて下さい。

.clearfix::after { content: "" ; display: block ; clear: both ; }

をCSSに追記して、反映させるのかと思っていますが、
やり方がいまいちわかっていません。

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

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

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

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

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

yambejp

2020/02/26 03:24

前回回答していますが なぜflexはダメなのか補足してください
退会済みユーザー

退会済みユーザー

2020/02/26 03:38

申し訳ありません。 昨日上手く行かなかったので、 別の方法を模索しました。 上手く行かなかった内容としては、 スマホからみると、 【文字】【文字】 と表示され、理想の、 【画像】【文字】 【画像】【文字】 にならなかったためです。 理解不足が故だと思います。
yambejp

2020/02/26 03:44

クラス名のサンプルに「**」的なものをつかうのはやめてください 動かないときの切り分けができなくなります
退会済みユーザー

退会済みユーザー

2020/02/26 03:48

申し訳ありません。 修正致しました。
退会済みユーザー

退会済みユーザー

2020/02/26 04:02

<style> @media screen and (min-width: 481px) { .hoge{display:flex;} } </style> <div class="A"> <p><img src="~.png" width="80" height="100" alt=""/></p> <p class="B">~~です。</p> <p><img src="~.png" width="80" height="100" alt=""/></p> <p class="B">~~~です。</p> </div> で失敗しています。
makosankibu

2020/02/26 04:11

質問文のコードはコードブロックで囲んでください。
退会済みユーザー

退会済みユーザー

2020/02/26 04:21

やり方が分かっていませんでした。申し訳ありません。 おっしゃっていることはこれであっていますでしょうか。
H40831

2020/02/26 04:30 編集

コーディング関連のスキルでは、上手く行かない時に、どういう風に上手く行かないのかをきちんと判断することが重要になります。 例えば今回の場合、上手く行かないと一言でいっても 1. floatだけが効かない 2. メディアクエリの中に入れたスタイルが全て効かない 3. floatによって何かしらの影響は出ているけど、想定した形にならない など、いろんな「上手く行かない」があるので、 そこをきちんと考えて、質問文にもきちんと書くようにすると、解決率がアップしますよ!
退会済みユーザー

退会済みユーザー

2020/02/26 04:37

ありがとうございます。 @media screen and (min-width:481px) { のCSSを書き込むと、 そもそも画像と文字が横並びにならず、 【画像】 【文字】 【画像】 【文字】 な上、その次の<h3>が上に上がってきてしまいます。 float: left; が問題なようで、それを書き込むと上記のようなレイアウトになってしまいます。
makosankibu

2020/02/26 07:24

yuuki_carolさん > おっしゃっていることはこれであっていますでしょうか。 ⇒合っています。 次回からは、 ``` html <div>test</div> ``` のようにコードブロックの横に示したい言語名を記載してください。 コードが色付けされ見やすくなり、より一層回答が付きやすくなります。
guest

回答2

0

ベストアンサー

flexを使った場合のコード例です。

css

1div.A { 2 display: flex; 3 align-items: center; 4} 5 6div.A p { 7 margin: 0 ; 8} 9 10@media screen and (min-width:481px) { 11 div.A { 12 display: inline-flex; 13 width: 48%; 14 } 15}

flexは親要素に設定すると子要素が横並びになります。

また、inline-flex にすると親要素自体も横並びになります。

動作確認用サンプル

投稿2020/02/26 04:43

編集2020/02/26 05:51
hatena19

総合スコア34075

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

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

退会済みユーザー

退会済みユーザー

2020/02/26 05:06

携帯で、 【画像】【文章】【画像】【文章】 と表示されました。 画像が表示されない状態から解消されました。 しかし、 【画像】【文章】 【画像】【文章】 と表示したいので、もう少し回答を待ちたいと思います。 ありがとうございました。
hatena19

2020/02/26 05:56

動作確認用サンプルのリンクを回答に追加しましたので、確認してみてください。 スマホ(スクリーンサイズ481px未満)で、 【画像】【文章】 【画像】【文章】 と表示されるはずです。
退会済みユーザー

退会済みユーザー

2020/02/26 06:07

まさしく、やりたいことがこれでした。 先程は、ミスが有ったのかもしれません。 もう一度やってみます。
退会済みユーザー

退会済みユーザー

2020/02/26 06:12

出来ました!!!!! 先程は、こちらにミスが有ったようで、申し訳ありませんでした。 動作確認用サンプルまで作成して頂き、本当に助かりました。
退会済みユーザー

退会済みユーザー

2020/02/26 06:35

別件なのですが、 今回は、【481以上からの閲覧時に横並び】 にしましたが、 【480以下からの閲覧時に横並びを解除】 というやり方も出来るのでしょうか。 <td><table>~~</td></table> <td><table>~~</td></table> というのを、横並びに表示するように書き込んであるとして、 480以下からの閲覧時、横並びに【しない】という設定が出来ますか。 また、可能であれば、再度質問を立てても構わないでしょうか。
hatena19

2020/02/27 01:13

子要素の横並びを解除して縦並びということですか。 display: flex; を display: block; に変更すれば縦並びになります。 レイアウトをtableでするというのはいまとなっては古い手法です。
guest

0

きちんと問題を切り分けていただいて、ありがとうございます。
今回の問題は「3. floatによって何かしらの影響は出ているけど、想定した形にならない」ということですね。

メディアクエリの問題であれば
「2. メディアクエリの中に入れたスタイルが全て効かない」
のパターンになりますので、メディアクエリの書き方には問題ありません。

質問者様が最終的にどういう形に仕上げたいのか、まだ想像しきれていないので、
ひとまずこうしたいのかな?というコードを提案してみます。
(意図した結果になっているかわからないので、解説は省略します。)

css

1div.A p { 2 display: table-cell ; 3 vertical-align: middle ; 4 margin: 0 ; 5} 6 7@media screen and (min-width:481px) { 8 div.A p { 9 display: table-cell; 10 vertical-align: middle; 11 margin: 0; 12 float: left; 13 } 14 div.A{ 15 clear: both; 16 } 17} 18

投稿2020/02/26 05:24

編集2020/02/26 05:25
H40831

総合スコア975

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

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

H40831

2020/02/26 05:28

ちなみに今回のようなことをしたいのであれば、自分もflex-boxの使用をおすすめします。 (「flex-boxでできるならfloatが理解できなくてもOK」と思ってはいないので、回答している次第です。)
退会済みユーザー

退会済みユーザー

2020/02/26 06:03 編集

すいません、ミスが有ったので、編集させて頂きました。。 コピーして使用させて頂きました。 携帯からは未確認ですが、 PCから、 【画像】【文章】 【画像】【文章】 になっています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問