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

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

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

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

CSS

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

Q&A

解決済

3回答

870閲覧

right-50%にして画面の外に隠そうとしても横幅が広がってしまい隠れません。

Dattyo

総合スコア8

HTML

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

CSS

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

0グッド

0クリップ

投稿2020/04/10 14:48

編集2020/04/11 00:27

どんなにright-◯◯%と書いても横幅が広くなるだけでメニューが隠れてくれません。
どうやったらメニュー部分が隠れるのかを教えていただきたいです。
よろしくお願いします。

イメージ説明

html

1<header> 2 <div class="hd-wrap"> 3 <img class="hd-logo" src="img/logo.png" alt=""> 4 <ul class="hd-list"> 5 <li class="hd-item"><a href="">Card<span><i class="fas fa-angle-right"></i></span></a></li> 6 <li class="hd-item"><a href="">News<span><i class="fas fa-angle-right"></i></span></a></li> 7 <li class="hd-item"><a href="">Price<span><i class="fas fa-angle-right"></i></span></a></li> 8 <li class="hd-item"><a href="">Access<span><i class="fas fa-angle-right"></i></span></a></li> 9 <li class="hd-item"><a href="">Contact<span><i class="fas fa-angle-right"></i></span></a></li> 10 </ul> 11 </div> 12 <div class="black-bg" id="ja-black-bg"></div> 13 <div class="hum" id="js-hum"> 14 <span class="hum-linn hum-line-1"></span> 15 <span class="hum-linn hum-line-2"></span> 16 <span class="hum-linn hum-line-3"></span> 17 </div> 18 </header>

scss

1header { 2 background: $blue; 3 box-shadow: 0 3px 3px #00000029; 4 color: #fff; 5} 6 7.hd-wrap { 8 display: flex; 9 justify-content: space-between; 10 padding: 31px 138px 30px 139px; 11 12 @include sp { 13 padding: 15px 0; 14 position: relative; 15 } 16 17 .hd-logo { 18 cursor: pointer; 19 transition: .5s linear; 20 &:hover { 21 transform: rotateX(360deg); 22 } 23 } 24 25 .hd-list { 26 display: flex; 27 justify-content: space-between; 28 29 @include sp { 30 display: block; 31 position: absolute; 32 right: -50%; 33 top: 0; 34 z-index: 200; 35 background: #fff; 36 width: 50%; 37 height: 100vh; 38 color: #707070; 39 } 40 41 .hd-item { 42 margin-right: 26px; 43 line-height: 39px; 44 position: relative; 45 46 @include sp { 47 margin-right: 0; 48 } 49 50 a { 51 display: block; 52 padding: 15px 20px; 53 } 54 55 &::after { 56 position: absolute; 57 content: ""; 58 height: 3px; 59 width: 100%; 60 background: #E81919; 61 bottom: 0; 62 left: 0; 63 opacity: 0; 64 transition: .3s; 65 66 @include sp { 67 background: none; 68 border-bottom: 1px dotted #707070; 69 opacity: 1; 70 } 71 } 72 73 &:hover::after { 74 opacity: 1; 75 } 76 77 &:last-child { 78 margin-right: 0; 79 } 80 81 span { 82 display: none; 83 @include sp { 84 display: inline-block; 85 position: absolute; 86 right: 20px; 87 88 } 89 } 90 } 91 } 92}

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

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

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

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

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

kei344

2020/04/10 14:55

(質問文は編集できます)質問文のHTML/scssはそれぞれコードブロックで囲んでいただけませんか? ```(バッククオート3つ)で囲み、前後に改行をいれるか、コードを選択して「<code>」ボタンを押すとコードブロックになります。
Dattyo

2020/04/10 15:29

申し訳ございません。 コードブロックつりました。
guest

回答3

0

自己解決

position:fixed;
にしたらできました。
回答をしていただ。

投稿2020/04/11 10:48

Dattyo

総合スコア8

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

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

0

これでどうでしょうか。

css

1.hd-wrap { 2 overflow: hidden; 3}

投稿2020/04/11 01:45

Lhankor_Mhy

総合スコア36960

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

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

Dattyo

2020/04/11 06:59

position:fixed; にしたらできました。 回答をしていただきありがとうございます。
guest

0

今回のシチュエーションでは、leftとrightは、どちらか片方を指定するのが妥当と思われます。

メニューの位置を指定している箇所は以下と認識しています。

SCSS

1.hd-list { 2 display: flex; 3 justify-content: space-between; 4 5 @include sp { 6 display: block; 7 position: absolute; 8 right: -50%; /* メニュー要素の右端の座標を指定 */ 9 top: 0; 10 z-index: 200; 11 background: #fff; 12 width: 50%; /* メニューの横幅 */ 13 height: 100vh; 14 color: #707070; 15 }

↓メニューを表示する際のCSSは以下のようになると思います。

SCSS

1.hd-list { 2 @include sp.active { 3 right: 0; /* 座標に手を加え表示 / 非表示を制御するなら、rightで一貫してください。 */ 4 } 5}

right: -50%;で右側にずらしたメニューの位置を、right: 0%;でキャンセルするイメージです。
(right: 0;でもかまいません。)

rightで右側にずらしたから、元に戻すなら左側にずらすためにleftを使おう」という解釈は、よくある誤解です。

rightは要素の右端の座標を指定して、leftは左端の座標を指定するので、横幅は伸びてleftとrightの座標指定の矛盾を解決する、という理解が正しいと思います。

投稿2020/04/10 23:08

編集2020/04/10 23:09
new1ro

総合スコア4528

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

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

Dattyo

2020/04/11 00:25

申し訳ございません。 leftではなく、rightにマイナスで画面の外に出したいのですが、画面の外に出そうとしても横幅が広がってしまいます。 画面が広がらない方法を教えていただきたいです。
new1ro

2020/04/11 04:51 編集

body { overflow-x: hidden; } を指定するといかがでしょうか?
Dattyo

2020/04/11 06:59

position:fixed; にしたらできました。 回答をしていただきありがとうございます。
new1ro

2020/04/11 07:16

解決できたようで、よかったです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問