2016-05-14 3 views
1

キャンバスメニューを作成しようとしていますが、問題が発生しました。 最初の2つのメニューリンクだけが灰色 - 黒色の背景で表示されていますが、すべてのメニューリンクにその背景が表示されます。残りの5つのメニューリンクはメニュー内にあります(リンク上にマウスを置いたときに表示されるように)が、透明な背景になっています。完全オフキャンバスメニュー

私はJsfiddleにHTMLとCSSのコードを置く:

P.S.コードはJsfiddle上で正常に動作しているようだが、私のウェブサイト上で、それは...ない

/*===== SLIDE MENU ======*/ 
 

 
/*---------- HIDE SELECT CHECKBOX ----------*/ 
 

 
.toggle, 
 
.full-screen-close 
 
{ 
 
\t display: none; 
 
} 
 

 
.full-screen-close 
 
{ 
 
\t width: 100%; 
 
\t height: 100%; 
 
\t position: absolute; 
 
\t cursor: pointer; 
 
\t top:0; 
 
\t left:0; 
 
} 
 

 
/*---------- TOGGLE OFF-CANVAS MENU ----------*/ 
 

 
.toggle:checked + .container > .menu-container 
 
{ 
 
    \t margin-left: 70%; 
 
} 
 

 
.toggle:checked + .container > .content .full-screen-close 
 
{ 
 
    \t display: block; 
 
    \t background: rgba(0,0,0,.5); 
 
} 
 

 
.menu 
 
{ 
 
\t padding-top: 24px; 
 
} 
 

 
.toggle-btn, 
 
.close-btn 
 
{ 
 
\t cursor: pointer; 
 
} 
 

 
.toggle-btn 
 
{ 
 
\t font-size: 2.25rem; 
 
} 
 

 

 
.close-btn 
 
{ 
 
\t float: right; 
 
\t font-size: 1.5rem; 
 
\t padding: 1.5rem; 
 
\t color: #ededed; 
 
} 
 

 
.menu-container, 
 
.content 
 
{ 
 
\t transition: margin 0.5s ease-in-out; 
 
} 
 

 
.menu-container 
 
{ 
 
\t background: #2c3e50; 
 
\t width: 40%; 
 
\t margin-left: 100%; 
 
\t 
 
\t float: right; 
 
\t height: 100%; 
 
\t position: absolute; 
 

 
\t z-index:99; 
 
} 
 

 
.slide-menu i 
 
{ 
 
\t margin-right: 1rem; 
 
\t font-size: 1.5rem; 
 

 
\t vertical-align: middle; 
 
} 
 
.slide-menu li a 
 
{ 
 
\t color: #fff; 
 
\t padding: 1.5rem; 
 

 
\t font-size: 1.125rem; 
 

 
\t text-transform: uppercase; 
 
\t font-weight: 600; 
 

 
\t display: block; 
 

 
\t transition: background-color .5s ease-in-out; 
 
} 
 

 
.slide-menu li a:hover 
 
{ 
 
\t background-color: #34495e; 
 
} 
 

 
/*===== MEDIA QUERIES ======*/ 
 
@media (max-width: 460px) { 
 
\t .slide-menu li a 
 
\t { 
 
\t \t font-size: 0.875rem; 
 
\t \t padding-left: 12px; 
 
\t } 
 

 
\t .slide-menu li i 
 
\t { 
 
\t \t font-size: 16px; 
 
\t } 
 
} 
 

 
@media (max-width: 320px){ 
 
\t .slide-menu li i 
 
\t { 
 
\t \t display: none; 
 
\t } 
 
}
<html lang="en"> 
 
\t 
 
    <meta charset="utf-8" /> 
 
     <meta http-equiv="X-UA-Compatible" content="IE=edge" /> 
 
     <meta name="viewport" content="width=device-width, initial-scale=1" /> 
 
     <meta name="description" content="Off-canvas navigation menu Tutorial" /> 
 
\t \t <meta name="keywords" content="slide-menu, sidebar, off-canvas, menu, navigation" /> 
 
     <meta name="author" content="AcasA Programming" /> 
 
     <link rel="icon" href="../../favicon.ico" /> 
 

 

 
\t \t <link rel="stylesheet" type="text/css" href="css/normalize.css" /> 
 
\t \t <link rel="stylesheet" type="text/css" href="css/style.css" /> 
 
\t \t <link rel="stylesheet" type="text/css" href="css/right-slide.css" /> 
 

 
\t \t <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css" /> 
 
\t 
 

 
    <body> 
 

 
    \t <input type="checkbox" id="offcanvas-menu" class="toggle" /> 
 

 
    \t <div class="container"> 
 

 
\t \t <aside class="menu-container"> 
 

 
\t \t \t <div class="menu-heading clearfix"> 
 
\t \t \t \t <label for="offcanvas-menu" class="close-btn"> 
 
\t \t \t \t \t <i class="fa fa-times"></i> 
 
\t \t \t \t </label> 
 
\t \t \t </div><!--end menu-heading--> 
 

 
\t \t \t <nav class="slide-menu"> 
 
\t \t \t \t <ul> 
 
\t \t \t \t \t <li><a href="#"><i class="fa fa-home"></i>Testing 1</a></li> 
 
\t \t \t \t \t <li><a href="#"><i class="fa fa-star"></i>Testing 2</a></li> 
 
\t \t \t \t \t <li><a href="#"><i class="fa fa-folder-open"></i>Testing 3</a></li> 
 
\t \t \t \t \t <li><a href="#"><i class="fa fa-cogs"></i>Testing 4</a></li> 
 
<li><a href="#"><i class="fa fa-star"></i>Testing 5</a></li> 
 
\t \t \t \t \t <li><a href="#"><i class="fa fa-folder-open"></i>Testing 6</a></li> 
 
\t \t \t \t \t <li><a href="#"><i class="fa fa-cogs"></i>Testing 7</a></li> 
 
\t \t \t \t </ul> 
 
\t \t \t </nav><!--end slide-menu --> 
 

 
\t \t </aside><!--end menu-container--> 
 

 
\t \t <section class="content"> 
 

 
\t \t \t <label for="offcanvas-menu" class="full-screen-close"></label> 
 

 
\t \t \t <div class="menu right"> 
 
\t \t \t \t <label for="offcanvas-menu" class="toggle-btn"> 
 
\t \t   \t <i class="fa fa-bars"></i> 
 
\t \t   </label> 
 
\t \t  </div><!--end menu--> \t \t \t 
 

 
\t \t \t <div class="menu-options clearfix"> \t 
 
\t \t \t \t 
 
\t \t \t \t <div class="right"> 
 
\t \t \t \t \t 
 
\t \t \t \t </div> 
 
\t \t \t </div> 
 

 
\t \t \t <div class="content-body"> 
 
\t \t \t </div><!--end content body--> 
 

 
\t \t </section><!--end content--> 
 
    \t \t 
 
    \t </div> <!--end container --> 
 
    </body> 
 
</html>

答えて

0

注:私は/あなたのHTMLの構造と感激していませんよCSSとそれがリファクタリングを使用することができると思う。私の答えは、あなたが持っている問題に対処しますが、コードをさらに単純化することを目指すべきです。

通報1:あなたのメニューは、メニューが絶対配置要素であるので、灰色の背景の高さを増加させ、ひいてはdocument flowの外ではないであろう。

灰色の背景は、ビューポート全体を満たすことを確認する最も簡単な方法はこれです:

.full-screen-close { 
    ... 
    p̶o̶s̶i̶t̶i̶o̶n̶:̶ ̶a̶b̶s̶o̶l̶u̶t̶e̶;̶ 
    position: fixed; 
} 

問題2:今、私たちは最初の問題を修正したことを、我々はdoesnのメニューの背後にある青色の背景を参照してくださいずっと伸びていない。

enter image description here

問題ありません。 heightプロパティを削除しましょう。今

.menu-container { 
    ... 
    h̶e̶i̶g̶h̶t̶:̶ ̶1̶0̶0̶%̶;̶ 
} 

.menu-containerはそれは、親の高さのない、100%にする必要があるほど背が高いです。

enter image description here

見てください:https://jsfiddle.net/ghbx6fmn/2/

+0

おかげで、それが働きました!もう一つの質問。今、左側のメニューを開くためのボタンです。どのように3つの裏打ちされたボタンを画面の右側に置くことができますか?メニューが拡大されたときにメニューの幅を変更できますか?申し訳ありませんが、私はコーディングに新しいです。 –

+0

あなたのフォローアップの質問は新しいスレッドに属すると思います。私の答えがあなたのために働くならば、投票してください/それを受け入れ、新しい質問を開きます。 –