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

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

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

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

HTML5

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

レスポンシブWebデザイン

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

Q&A

解決済

1回答

2659閲覧

ヘッダーメニューのレスポンシブ時における伸縮の実装

yuto_urushima

総合スコア9

CSS3

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

HTML5

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

レスポンシブWebデザイン

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

0グッド

0クリップ

投稿2020/04/20 04:24

質問概要

今、ヘッダーのメニューを実装しているのですが、
画面幅を小さくしていく際に上手くヘッダーも縮んでいきません。
画面幅が小さくなっていった時に、グレーのkv部分と同じように縮んで行ってほしいのですが、上手く実装できません。(下のキャプチャ)
widthに上手く%指定ができれば良いのは何となく分かりますが、どうにも進展しません。

こういったヘッダーメニューのレスポンシブ時の具体的な実装の方法を教えていただければと思います。

(例えば、ここにwidth何%を指定して、ここにdisplayのflexを指定してやるのが一般的とかメディアクエリにはこのwidthをしてするとか)

試したこと

・全体を覆うheader-topにwidth:100%;指定(あまり意味がないことも理解していますが)
・Googleで「ヘッダー メニュー レスポンシブ」などの類似のキーワードで検索しましたが、目ぼしい結果が帰ってきませんでした。

現在の実装状況のキャプチャ

![イメージ説明

現段階のコード

HTML

1<div class="header-top"> 2 <div class="header-title"> 3 4 </div> 5 <div class="header-list"> 6 <ul> 7 <li><a href="#con1">CONTENTS1</a></li> 8 <li><a href="#con2">CONTENTS2</a></li> 9 <li><a href="#con3">CONTENTS3</a></li> 10 <li><a href="#">CONTENTS4</a></li> 11 12 <!-- Twitter ロゴ--> 13 <!-- Generator: Adobe Illustrator 24.1.0, SVG Export Plug-In --> 14 <li><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="16px" height="14px" 15 viewBox="0 0 512 415.84" style="enable-background:new 0 0 512 415.84;" xml:space="preserve"> 16 <defs> 17 </defs> 18 <path d="M459.37,103.63c0.33,4.55,0.33,9.1,0.33,13.65c0,138.72-105.58,298.56-298.56,298.56c-59.45,0-114.68-17.22-161.14-47.11 19 c8.45,0.97,16.57,1.3,25.34,1.3c49.06,0,94.21-16.57,130.27-44.83c-46.13-0.98-84.79-31.19-98.11-72.77c6.5,0.97,13,1.62,19.82,1.62 20 c9.42,0,18.84-1.3,27.61-3.57c-48.08-9.75-84.14-51.98-84.14-102.98v-1.3c13.97,7.8,30.21,12.67,47.43,13.32 21 c-28.26-18.84-46.78-51-46.78-87.39c0-19.49,5.2-37.36,14.29-52.95c51.65,63.68,129.3,105.26,216.37,109.81 22 c-1.62-7.8-2.6-15.92-2.6-24.04C249.5,47.11,296.28,0,354.43,0c30.21,0,57.5,12.67,76.67,33.14c23.71-4.55,46.46-13.32,66.6-25.34 23 c-7.8,24.37-24.37,44.83-46.13,57.83c21.12-2.27,41.58-8.12,60.43-16.24C497.71,70.17,479.84,88.69,459.37,103.63L459.37,103.63z"/> 24 </svg></li> 25 26 <!-- Facebook ロゴ--> 27 <!-- Generator: Adobe Illustrator 24.1.0, SVG Export Plug-In --> 28 <li><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" 29 width="7px" height="17px" viewBox="0 0 274.22 512" style="enable-background:new 0 0 274.22 512;" xml:space="preserve"> 30 <defs> 31 </defs> 32 <path d="M256.25,288l14.22-92.66h-88.91v-60.13c0-25.35,12.42-50.06,52.24-50.06h40.42V6.26c0,0-36.68-6.26-71.75-6.26 33 C129.25,0,81.39,44.38,81.39,124.72v70.62H0V288h81.39v224h100.17V288H256.25z"/> 34 </svg></li> 35 </ul> 36 </div>

SCSS

1.header-top{ 2 display: flex; 3 justify-content: space-between; 4 height:115px; 5 width: $width; 6 margin: 0 auto; 7} 8 9.header-title{ 10 width:216px; 11 height:100px; 12 background-color:red; 13 margin-right:192px; 14 display:flex; 15 align-items: center; 16} 17 18.header-list{ 19 display: flex; 20 align-items: center; 21 a{ 22 text-decoration: none; 23 color:$color-font; 24 } 25 ul{ 26 height:15px; 27 display: flex; 28 li{ 29 padding-left:52px; 30 font-family:$font-en; 31 font-weight: $weight; 32 font-size:15px; 33 line-height:1; 34 &:first-child{ 35 padding-left: 0px; 36 } 37 &:nth-child(6){ 38 padding-left:18px; 39 position: relative; 40 top:-2px; 41 } 42 } 43 } 44} 45 46@media screen and (max-width:1080px){ 47 .header-top{ 48 width:100%; 49 } 50 51 .header-title{ 52 margin-left:20px; 53 } 54 55@media screen and (max-width:767px){ 56 /* ヘッダー部分 */ 57 .header-list{ 58 display: none; 59 } 60 61 .header-title{ 62 margin-right:0; 63 } 64

よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

横幅について、全体の画面幅が1000px以下程度の場合を想定すると、
.header-titlemargin-right: 192px;のままだと1/5くらい消費
.header-list ul lipadding-left: 52pxのままだと1/5くらい消費
合計2/5ほど、余白で使ってしまっている状態になっています。

そのため以下のブレークポイントでその余白を小さくすることを、
レスポンシブ対応時には行います。

CSS

1@media screen and (max-width: 1080px) { 2 /* 追加 */ 3 .header-title { 4 margin-right: 40px; /* 192pxだと、全体の1/5を使ってしまうので小さく */ 5 } 6 .header-list ul li { 7 padding-left: 20px; /* 52pxのままだと、全体の1/5を使ってしまうので小さく */ 8 } 9}

@media screen and (max-width:767px)以下のときは、
ドロワーメニューを実装するか、ロゴとナビゲーションを左右に配置するのではなく上下に配置する..
などを行う必要があると考えます。

投稿2020/04/20 04:49

new1ro

総合スコア4528

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

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

yuto_urushima

2020/04/20 06:32

回答いただきありがとうございました! おかげさまでデザインが崩れることなく、レスポンシブ化できるようになりました!!
new1ro

2020/04/20 07:52

問題解決できたようでよかったです。 レスポンシブなコーディングにて崩れが生じた場合、高度なCSS上の知識がなくても、横幅や余白の足し算、引き算で崩れの原因にたどり着く場合があるので あまり怖がらず、いったん計算してみてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問