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

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

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

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

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

HTML

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

CSS

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

Q&A

解決済

1回答

1473閲覧

レスポンシブのやり方について相談があります

porusan0880

総合スコア19

CSS3

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

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

HTML

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

CSS

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

0グッド

0クリップ

投稿2016/10/24 10:29

編集2016/10/25 04:12

レスポンシブサイトをつくる際、下図のようなヘッダーのデザインの場合、いつもタブレットサイズの時きれいに表示できず、@mediaqueryを多発してしまい、スタイルシートが長くなってしまいます。
そこでみなさんなら下図のようなデザインの場合どういったコードを書かれるのでしょうか?
参考にしたいので教えてもらえると助かります。

###自分が作成したさいのコード
html

<header class="scrollheader"> <div class="headarea"> <h1><span class="left_block head-logo"><img src="#" alt="ロゴ"></span></h1> <p class="contact-linkarea"> <a class="contact" href="">ツイッター</a></p> <p class="contact-linkarea"> <a class="webbooking" href="">フェイスブック</a> </p> <div class="head-rightarea right_block"> <nav class="nav"> <ul> <li><a href="#">メニュー1</a></li> <li><a href="#">メニュー2</a></li> <li><a href="#">メニュー3</a></li> <li><a href="#">メニュー4</a></li> <li><a href="#">メニュー5</a></li> <li><a href="#">メニュー6</a></li> </ul> </nav> </div> </div> </header>

css

.scrollheader{ position: fixed; top:0; width:100%; display: none; background:#fff; height:110px; z-index:1000; } .headarea{ width:100%; max-width:1080px; margin:0 auto; overflow: hidden; position: relative; } .head-logo{ max-width:230px; width:100%; margin-top:20px; } p.contact-linkarea{ display: inline-block; position: absolute; top:19px; right:158px; } p.contact-linkarea:nth-child(2){ right:0px; color:#270000; } .contact-linkarea a{ color:#fff; padding: 15px 60px; background: url('img/common/btn_reserve.jpg') 0 0 no-repeat; } .contact-linkarea:nth-child(2) a{ color: #270000; padding: 15px 38px; background: url('img/common/btn_contact.jpg') 0 0 no-repeat; } nav ul li a{ color: #270000; } .pageheader .nav ul li a{ color:#fff; text-shadow: 2px 1px 1px #999999; } .head-rightarea{ margin-top:80px; } .nav ul{ overflow: hidden; } .nav ul li{ float: left; margin:0 8px; overflow: visible; font-size: 1.6rem; } .nav ul li:last-child{ margin:0 0 0 8px; } .nav ul li a{ position: relative; padding:0 3px; } @media screen and (max-width:1048px){ .nav ul li{ margin:0 5px!important; } .nav ul li a{ font-size:15px; padding:0!important; } } @media screen and (max-width:931px){ .nav ul li a{ font-size:12px; } } @media screen and (max-width:809px){ .scrollheader{ display: none!important; } }

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

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

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

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

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

masayoshi0222

2016/10/25 02:24

提示されているCSSがレスポンシブ対応になっておらず、一部だけが表記されていると思われます。全てのCSSを提示をお願いいたします。
guest

回答1

0

ベストアンサー

パッと見で恐縮ですが、ロゴがあってメニューがあるヘッダ構造の場合、メニューを畳むのが一般的です。
じゃないとスマホ縦で収まらないのは確実ですから。

html

1<header class="scrollheader"> 2 <div class="headarea"> 3 <h1><span class="left_block head-logo"><img src="#" alt="ロゴ"></span></h1> 4 <p class="contact-linkarea"> 5 <a class="contact" href="">ツイッター</a></p> 6 <p class="contact-linkarea"> 7 <a class="webbooking" href="">フェイスブック</a> 8 </p> 9 <div class="head-rightarea right_block"> 10 <nav class="nav"> 11 <ul> 12 <li><a href="#">メニュー1</a></li> 13 <li><a href="#">メニュー2</a></li> 14 <li><a href="#">メニュー3</a></li> 15 <li><a href="#">メニュー4</a></li> 16 <li><a href="#">メニュー5</a></li> 17 <li><a href="#">メニュー6</a></li> 18 </ul> 19 </nav> 20 </div> 21 <div id="subnavi"> 22 <div class="hamburger"> 23 <a id="hamburger-trigger"> 24 <i class="glyphicon glyphicon-menu-hamburger"></i> 25 </a> 26 </div> 27 <ul id="hamburger-content"></ul> 28 </div> 29</header>

スマホ用のソースを追記し、それをCSSで消します。

css

1#subnavi { 2 display: none; 3}

メディアクエリを使って、ポイントで今度は逆にします。

css

1.head-rightarea { 2 display: none; 3} 4#subnavi { 5 display: block; 6}

次にJS処理。
メニュー1から6までをクローンし、hamburger-content内に入れます。
で、ハンバーガーをクリックしたら下にスライドさせます。

javascript

1$('nav.nav ul li').clone().appendTo('#hamburger-content'); 2$('#hamburger-trigger').on('click', function(){ 3 $('#hamburger-content').slideToggle(); 4}); 5$(window).on('load resize', function() { 6 if (window.matchMedia('(max-width:xxxpx)').matches) { 7 // 処理 8 } 9});

一応リサイズ対策やスマホ時の処理に使う部分も入れておきます。

人によってやり方はいろいろと思いますので一例として。

投稿2016/10/25 04:15

takepieee

総合スコア686

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問