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

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

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

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

Chrome extension

Chrome拡張機能

Q&A

1回答

327閲覧

オリジナルのメニューバーが既存の要素と被らないようにしたい

woody_1227

総合スコア0

CSS3

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

Chrome extension

Chrome拡張機能

0グッド

0クリップ

投稿2023/01/21 08:54

実現したいこと

Google Chromeでウェブページの一番上にオリジナルのメニューバーを表示する拡張機能を開発している。
後ろの要素や既存のメニューなど、既存のページに被らない形で表示し、スクロール後も固定されるようにしたい。

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

一部のページ(Googleの検索ページなど)で、後ろの要素や既存のメニューとオリジナルのメニューバーが被ってしまう。

該当のソースコード

content.js

1window.addEventListener('load', function() { 2 var divblock = document.createElement("div"); 3 divblock.setAttribute('id', "my-addon-area"); 4 document.body.insertBefore(divblock, document.body.firstChild); 5 var html = document.getElementsByTagName("html")[0]; 6 var new_element = html.insertBefore(document.createElement("div"), null); 7 new_element.className = "my-addon-menu"; 8 var shadowRoot = document.getElementsByClassName("my-addon-menu")[0].attachShadow({mode: 'open'}); 9 shadowRoot.host.style = "height: 30px; border: none; position: fixed; top: 0px; left: 0px; margin-bottom: 0px; margin-left: 0px; z-index: 2147483647; width: 100%; box-sizing: border-box; box-shadow: rgba(0, 0, 0, 0.2) 0px 2px 10px;"; 10 shadowRoot.innerHTML = 11 `<div class="my-addon-navwrappe" style="z-index: 2147483647; top: 0; width: 100%; border: 0px; background: #4DB56A; box-shadow: rgba(0, 0, 0, 0.2) 0px 2px 10px;"> 12 <div class="my-addon-nav"> 13 <ul> 14 <li><a href="https://youtube.com/">YouTube</a></li> 15 <li><a href="https://twitter.com/">Twitter</a></li> 16 </ul> 17 </div> 18 </div> 19 <style type="text/css"> 20 .my-addon-navwrappe { 21 margin: 0 auto; 22 background-color: #4DB56A; 23 height: 30px; 24 width: 100%; 25 -webkit-user-select: none; 26 user-select: none; 27 } 28 29 .my-addon-navwrappe .my-addon-nav, .my-addon-navwrappe .my-addon-nav ul{ 30 padding: 0; 31 margin: 0; 32 list-style: none; 33 font-family: Arial,Helvetica,sans-serif; 34 } 35 36 .my-addon-navwrappe .my-addon-nav { 37 -webkit-font-smoothing: antialiased; 38 font-family: Arial,Helvetica,sans-serif!important; 39 font-size: 13px; 40 /*padding-top: 4px;*/ 41 width: 100%!important; 42 } 43 44 .my-addon-nav { 45 margin-left: 8px!important; 46 } 47 48 .my-addon-nav ul li { 49 cursor: pointer; 50 font-family: Arial,Helvetica,sans-serif!important; 51 float: left!important; 52 position: relative!important; 53 line-height: 30px!important; 54 height: 30px!important; 55 font-size: inherit!important; 56 margin: 0!important; 57 padding: 0!important; 58 border: 0!important; 59 list-style: none!important; 60 background: transparent!important; 61 } 62 63 .my-addon-navwrappe .my-addon-nav a { 64 font-family: Arial,Helvetica,sans-serif!important; 65 display: block!important; 66 padding: 0 7px; 67 line-height: 30px!important; 68 height: 30px!important; 69 text-decoration: none; 70 font-weight: normal; 71 color: white; 72 } 73 74 .my-addon-navwrappe .my-addon-nav a:hover { 75 opacity: 0.75; 76 } 77 </style>`; 78}, true);

body.css

1.my-addon-area { 2 height: 30px !important; 3 width: 100% !important; 4 display: block !important; 5}

試したこと

  • body要素に[padding-top: 30px !important;]を記述した。

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

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

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

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

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

guest

回答1

0

オリジナルのメニューバーの高さを下記のように確保すればどうでしょヴ。

js

1document.createElement("div"); 2 divblock.setAttribute('id', "my-addon-area"); 3 divblock.style.height = "30px"; //追加

投稿2023/01/22 02:42

hatena19

総合スコア33715

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

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

woody_1227

2023/01/22 03:11

失礼しました。 指摘いただいた点、訂正しましたが、相変わらずといった感じです。 既存のメニューなどに[top: 0;]や[position: sticky;]などと記載されているためかもしれません。 これらの既存のメニューなどを書き換えるしかないのでしょうか。
hatena19

2023/01/22 06:07

body要素をメニューバーの高さ分下にずらしたらどうだろう。 document.body.style.transform = "translatey(30px)";
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問