2017-09-06 8 views
0

私のヘッダーには、ハンバーガーメニュー、会社ロゴ、ユーザーアイコンがあります。会社ロゴブロックユーザーアイコン

私はハンバーガーメニューと私のユーザアイコンだけを入れれば、すべてが一直線に並んでいます。 しかし、私が会社のロゴを入れた場合、ユーザーアイコンは少し下に移動し、もう行にはありません。

誰かが私が間違ったことを知っていますか、これをどのように修正できますか? パディングトップ、マージンなどで移動しようとしました。しかし、それは何も変えなかった。それは冷凍のようです。

$(document).on('click', function(e){ 
 
if(e.target.type == "checkbox") 
 
    return; 
 
else{ 
 
    var elem = $('#menuToggle').find('input[type=checkbox]'); 
 
    if($(elem).prop('checked')){ 
 
     $(elem).trigger('click'); 
 
    } 
 
} 
 
});
.headlogo { 
 
\t display: block; 
 
\t margin-left: auto; 
 
\t margin-right: auto; 
 
\t 
 
} 
 
.userlogo { 
 
\t display: block; 
 
\t float: right; 
 
\t margin-right: 20px; 
 
    margin-top: 10px; 
 
\t 
 
} 
 
/* 
 
* Made by Erik Terwan 
 
* 24th of November 2015 
 
* All rights reserved 
 
* 
 
* 
 
* If you are thinking of using this in 
 
* production code, beware of the browser 
 
* prefixes. 
 
*/ 
 

 
body 
 
{ 
 
    overflow-x: hidden; 
 
    margin: 0; 
 
    padding: 0; 
 
    font-family: "Avenir Next", "Avenir", sans-serif; 
 
} 
 

 
a 
 
{ 
 
    text-decoration: none; 
 
    color: white; 
 
    transition: color 0.1s ease; 
 
} 
 

 
a:hover 
 
{ 
 
    color: black; 
 
} 
 
nav { 
 
\t display: inline-block; 
 
} 
 
#menuToggle 
 
{ 
 
    display: block; 
 
    position: relative; 
 
    top: 50px; 
 
    left: 50px; 
 
    
 
    z-index: 1; 
 
    
 
    -webkit-user-select: none; 
 
    user-select: none; 
 
} 
 

 
#menuToggle input 
 
{ 
 
    display: block; 
 
    width: 40px; 
 
    height: 32px; 
 
    position: absolute; 
 
    top: -7px; 
 
    left: -5px; 
 
    
 
    cursor: pointer; 
 
    
 
    opacity: 0; /* hide this */ 
 
    z-index: 2; /* and place it over the hamburger */ 
 
    
 
    -webkit-touch-callout: none; 
 
} 
 

 
/* 
 
* Just a quick hamburger 
 
*/ 
 
#menuToggle span 
 
{ 
 
    display: block; 
 
    width: 33px; 
 
    height: 4px; 
 
    margin-bottom: 5px; 
 
    position: relative; 
 
    
 
    background: black; 
 
    border-radius: 3px; 
 
    
 
    z-index: 1; 
 
    
 
    transform-origin: 4px 0px; 
 
    
 
    transition: transform 0.5s cubic-bezier(0.77,0.2,0.05,1.0), 
 
       background 0.5s cubic-bezier(0.77,0.2,0.05,1.0), 
 
       opacity 0.55s ease; 
 
} 
 

 
#menuToggle span:first-child 
 
{ 
 
    transform-origin: 0% 0%; 
 
} 
 

 
#menuToggle span:nth-last-child(2) 
 
{ 
 
    transform-origin: 0% 100%; 
 
} 
 

 
/* 
 
* Transform all the slices of hamburger 
 
* into a crossmark. 
 
*/ 
 
#menuToggle input:checked ~ span 
 
{ 
 
    opacity: 1; 
 
    transform: rotate(45deg) translate(-2px, -1px); 
 
    background: white 
 
} 
 

 
/* 
 
* But let's hide the middle one. 
 
*/ 
 
#menuToggle input:checked ~ span:nth-last-child(3) 
 
{ 
 
    opacity: 0; 
 
    transform: rotate(0deg) scale(0.2, 0.2); 
 
} 
 

 
/* 
 
* Ohyeah and the last one should go the other direction 
 
*/ 
 
#menuToggle input:checked ~ span:nth-last-child(2) 
 
{ 
 
    opacity: 1; 
 
    transform: rotate(-45deg) translate(0, -1px); 
 
} 
 

 
/* 
 
* Make this absolute positioned 
 
* at the top left of the screen 
 
*/ 
 
#menu 
 
{ 
 
    position: absolute; 
 
    width: 400px; 
 
    margin: -100px 0 0 -50px; 
 
    padding: 50px; 
 
    padding-top: 125px; 
 
    float: left; 
 
    background: black; 
 
    list-style-type: none; 
 
    -webkit-font-smoothing: antialiased; 
 
    /* to stop flickering of text in safari */ 
 
    
 
    transform-origin: 0% 0%; 
 
    transform: translate(-100%, 0); 
 
    
 
    transition: transform 0.5s cubic-bezier(0.77,0.2,0.05,1.0); 
 
} 
 

 
#menu li 
 
{ 
 
    padding: 10px 0; 
 
    font-size: 22px; 
 
} 
 

 
/* 
 
* And let's fade it in from the left 
 
*/ 
 
#menuToggle input:checked ~ ul 
 
{ 
 
    transform: scale(1.0, 1.0); 
 
    opacity: 1; 
 
}
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<header> 
 
\t \t <nav role="navigation"> 
 
    \t <div id="menuToggle"> 
 
    \t <input type="checkbox" /> 
 
    \t <span></span> 
 
    \t <span></span> 
 
    \t <span></span> 
 
    \t <ul id="menu"> 
 
     <a href="#"><li>Home</li></a> 
 
     <a href="#"><li>About</li></a> 
 
     <a href="#"><li>Info</li></a> 
 
     <a href="#"><li>Contact</li></a> 
 
     <a href="#"><li>Contact</li></a> 
 
     <a href="#"><li>Contact</li></a> 
 
     <a href="#"><li>Contact</li></a> 
 
     <a href="#"><li>Contact</li></a> 
 
     <a href="https://erikterwan.com/" target="_blank"><li>Show me more</li></a> 
 
    </ul> 
 
    </div> 
 
</nav> 
 
\t \t <img class="headlogo" src="http://www.bilder-upload.eu/upload/4483c1-1504701412.png"> 
 
\t \t <i class="fa fa-2x fa-user userlogo" aria-hidden="true"></i> 
 

 
\t </header>

あなたはクラス "headlogo" とIMGのSRCを削除することにより、ロゴを削除することができます。

お手伝いいただける皆様、ありがとうございます。その後、:)

答えて

1

変更#menuToggle0からtopleftスタイルやheaderタグにフレキシボックスを使用してみてください。

display: flex; 
align-items: center; 

フィドルを確認してください:https://jsfiddle.net/vxqzw8sz/2/

+0

携帯電話用に最適化した後、最終的に動作します。助けてくれてありがとう! – smaxxx

0

あなたのロゴがdisplay: blockあるためです - デフォルトでは、display: block要素は、そのコンテナの全幅を取るので、それは上に行くために次の要素(ユーザーのアイコン)を強制的に次の行実際にflexboxを使用して効果を得てください(フレックスボックスの実装の詳細については、Ovidiu Unguru's answerincluded JSFiddleを参照してください)。

0

ブロックレベルの要素は、幅が指定されていないか、浮動または他の方法で配置されていない限り、ブラウザの全幅を占めます。あなたのアイコンが1つのレベルを下げる理由です。そこには余裕がない。

たとえば、画像からdisplay:block;を削除すると、アイコンが上に移動します。

私はより多くのアドバイスを提供しますが、そのことはメニューの配置に影響しますので、それに取り組む必要があります。