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

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

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

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

HTML

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

CSS

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

Q&A

解決済

3回答

9986閲覧

div要素のBOXをPC時横並び スマホ時縦並びのCSSとHTMLの記述について教えてください。

peperin

総合スコア7

CSS3

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

HTML

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

CSS

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

0グッド

0クリップ

投稿2018/04/12 03:53

編集2018/04/12 05:24

前提・実現したいこと

div要素のBOXを
PC時横並び 
スマホ時縦並びにしたいです。
HTML
に対しpc.CSS(PC用:CSSソース1つめ) sp.css(スマホ用:CSSソース2つ目)

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

スマホになっても横並びのままになります

該当のソースコード

html

1 <div class="boxA"> 2 <div class="boxB" > 3 <div class="box-title">&#10004;POINT</div> 4 <p>●文章 5 <br>●文章 6 <br>●文章 7 <br>●文章 8 <br>●文章 9 </p> 10 </div> 11 <div class="boxB" > 12 <div class="box-title">&#10004;POINT</div> 13 <p>●文章 14 <br>●文章 15 <br>●文章 16 <br>●文章 17 <br>●文章 18 </p> 19 </div> 20 </div> 21 <br class="clear"> 22 <br>

CSS

1/*-------------------- box--------------------*/ 2.boxB { 3 float: left; 4 width: 50%; 5 margin: 2em 0; 6 background: #f1f1f1; 7 box-shadow: 0 2px 4px rgba(0, 0, 0, 0.22); 8} 9.boxB .box-title { 10 font-size: 1.2em; 11 background: #5fc2f5; 12 padding: 4px; 13 text-align: center; 14 color: #FFF; 15 font-weight: bold; 16 letter-spacing: 0.05em; 17} 18.boxB p { 19 padding: 15px 20px; 20 margin: 0; 21} 22/*-------------------- boxA--------------------*/ 23.boxA { 24 border: none; 25 &:after { 26 content: ""; 27 display: block; 28 clear: both; 29 } 30}

CSS

1/*-------------------- box--------------------*/ 2.boxB { 3 margin: 2em 0; 4 background: #f1f1f1; 5 box-shadow: 0 2px 4px rgba(0, 0, 0, 0.22); 6} 7.boxB .box-title { 8 font-size: 1.2em; 9 background: #5fc2f5; 10 padding: 4px; 11 text-align: center; 12 color: #FFF; 13 font-weight: bold; 14 letter-spacing: 0.05em; 15} 16.boxB p { 17 padding: 15px 20px; 18 margin: 0; 19} 20/*-------------------- boxA--------------------*/ 21.boxA { 22 border: none; 23 &:after { 24 content: ""; 25 display: block; 26 clear: both; 27 } 28}

試したこと

14:25 追記
HTML内に
<meta name="viewport" content="width=device-width">
sp.css内に
/---------------------------- スマ-トフォン向けのスタイル ----------------------------/
@media only screen and (max-width: 679px) {

をレスポンシブ変更の際に記載しております。

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

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

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

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

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

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

m.ts10806

2018/04/12 03:54

「ネットで調べいろいろしました」内容を追記してください。もしかしたら導入の仕方が間違っているかもしれませんし、回答した後で「そこ見ました」となってしまっては無駄なやり取りが発生します。
m.ts10806

2018/04/12 03:55

pc.CSS、sp.cssを読み込ませている記述部分も追記してください。これだけでは「どうやってPC・スマホを判別しているか」が分かりません。
stampdoor

2018/04/12 04:17

正にその通り。おそらくpc.cssとsp.cssの読み込み切り分けができていないのが原因っぽいですね。
m.ts10806

2018/04/12 04:44

ソースコードが長いので冒頭で1つ目、2つ目とするのではなくコードのすぐ上にファイル名を記載されたほうが見やすいです。
yoshinavi

2018/04/12 05:02

「レスポンシブ メディアクエリ」等で検索すると、良いかもです。
guest

回答3

0

PCかスマホかで読み込むCSSを変更するというのもいいですが、差分が縦並び/横並び等レイアウトに関する部分しかないのであれば、メディアクエリでwidthを見てレイアウトを変更するほうがいいのではないでしょうか。

投稿2018/04/12 04:30

k.tada

総合スコア1679

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

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

peperin

2018/04/12 07:49

メディアクエリでの検索先参考になりました。 ありがとうございました。
guest

0

UAで切り分けないのであればこんな感じにメディアクエリで判別して幅だけ変える。
PC版の.boxBの指定以降に追記してください。

CSS

1@media screen and (max-width:480px){ 2 .boxB { 3 width: 100%; 4 } 5}

max-width:480px
を変更するとそのサイズ以下での適応が出来ます。

投稿2018/04/12 04:40

Atsushi_Okumura

総合スコア355

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

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

peperin

2018/04/12 07:48

参考にいたしました ありがとうございます。
guest

0

ベストアンサー

max-width: 679pxって結構大きな数字ではないでしょうか?
iPhone6/7/8 Plusでも縦方向に持った場合、ブラウザ横幅は414pxだったかと思います。

また、@media only screen and…で囲っていない部分はどの幅の場合でも適用されますので、
pc.cssのfloat: left;が適用されているのではないかと思います。

共通した部分も見受けられましたので、試しにまとめてみました。(flex使えばとかその辺の話は置いときます)

html

1<!DOCTYPE html> 2<html lang="ja"> 3 <head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width" /> 6 <link rel="stylesheet" href="common.css"> 7 <link rel="stylesheet" href="pc.css" type="text/css" media="screen and (min-width:481px)"> 8 <link rel="stylesheet" href="sp.css" type="text/css" media="screen and (max-width:480px)"> 9 </head> 10 <body> 11 <div class="boxA"> 12 <div class="boxB" > 13 <div class="box-title">&#10004;POINT</div> 14 <p> 15 ●文章<br> 16 ●文章<br> 17 ●文章<br> 18 ●文章<br> 19 ●文章<br> 20 ●文章<br> 21 ●文章<br> 22 ●文章<br> 23 </p> 24 </div> 25 <div class="boxB" > 26 <div class="box-title">&#10004;POINT</div> 27 <p> 28 ●文章<br> 29 ●文章<br> 30 ●文章<br> 31 ●文章<br> 32 ●文章<br> 33 ●文章<br> 34 ●文章<br> 35 ●文章<br> 36 </p> 37 </div> 38 </div><!-- end of boxA --> 39 <br class="clear"> 40 </body> 41</html>

common.css(名前は任意/共通の部分)

css

1/*-------------------- boxB --------------------*/ 2.boxB { 3 margin: 2em 0; 4 background: #f1f1f1; 5 box-shadow: 0 2px 4px rgba(0, 0, 0, 0.22); 6} 7.boxB .box-title { 8 font-size: 1.2em; 9 background: #5fc2f5; 10 padding: 4px; 11 text-align: center; 12 color: #FFF; 13 font-weight: bold; 14 letter-spacing: 0.05em; 15} 16.boxB p { 17 padding: 15px 20px; 18 margin: 0; 19} 20/*-------------------- boxA --------------------*/ 21.boxA { 22 border: none; 23 &:after { 24 content: ""; 25 display: block; 26 clear: both; 27 } 28}

pc.css

css

1/*-------------------- boxB --------------------*/ 2.boxB { 3 float: left; 4 width: 50%; 5}

sp.css

css

1/* まとめたら書くことがなくなっちゃいました */

今回はCSS内ではなく<style>で切り分けてますが、考え方は一緒です。

投稿2018/04/12 07:11

dit.

総合スコア3235

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

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

peperin

2018/04/12 07:47

幅の修正でなおりました ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問