現状
codepenを用いてnavvarのレイアウトを整えようと思い、まずはVSCodeでHTML,CSS,JavaScriptを全て貼り付けて動作確認を行いました。
しかし、HTMLにはおそらくbody部分のみが記述されており、headタグが省かれていたためmetaタグなどがわからない状況です。
CSSは読み込んでみても見た目にかなりの差があり、どこに問題があるのかわからない状況です。
検証➡️コンソールを確認しましたが特に不具合は見られませんでした。
該当コード
HTML
1<nav class="navbar"> 2 <ul class="navbar__menu"> 3 <li class="navbar__item"> 4 <a href="#" class="navbar__link"><i data-feather="home"></i><span>Home</span></a> 5 </li> 6 <li class="navbar__item"> 7 <a href="#" class="navbar__link"><i data-feather="message-square"></i><span>Messages</span></a> 8 </li> 9 <li class="navbar__item"> 10 <a href="#" class="navbar__link"><i data-feather="users"></i><span>Customers</span></a> 11 </li> 12 <li class="navbar__item"> 13 <a href="#" class="navbar__link"><i data-feather="folder"></i><span>Projects</span></a> 14 </li> 15 <li class="navbar__item"> 16 <a href="#" class="navbar__link"><i data-feather="archive"></i><span>Resources</span></a> 17 </li> 18 <li class="navbar__item"> 19 <a href="#" class="navbar__link"><i data-feather="help-circle"></i><span>Help</span></a> 20 </li> 21 <li class="navbar__item"> 22 <a href="#" class="navbar__link"><i data-feather="settings"></i><span>Settings</span></a> 23 </li> 24 </ul> 25 </nav>
CSS
1$borderRadius: 10px; 2$spacer: 1rem; 3$primary: #406ff3; 4$text: #6a778e; 5$linkHeight: $spacer * 3.5; 6$timing: 250ms; 7$transition: $timing ease all; 8 9@mixin gooeyEffect($i) { 10 @keyframes gooeyEffect-#{$i} { 11 0% { 12 transform: scale(1, 1); 13 } 14 50% { 15 transform: scale(0.5, 1.5); 16 } 17 100% { 18 transform: scale(1, 1); 19 } 20 } 21} 22@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@600&display=swap'); 23body{ 24 background: #eaeef6; 25 font-family: 'Open Sans', sans-serif; 26} 27.navbar{ 28 $ref: &; 29 position: fixed; 30 top: $spacer; 31 left: $spacer; 32 background: #fff; 33 border-radius: $borderRadius; 34 padding: $spacer 0; 35 box-shadow: 0 0 40px rgba(0,0,0,0.03); 36 height: calc(100vh - #{$spacer*4}); 37 &__link{ 38 position:relative; 39 display: flex; 40 align-items: center; 41 justify-content: center; 42 height: $linkHeight; 43 width: $spacer * 5.5; 44 color: $text; 45 transition: $transition; 46 span{ 47 position: absolute; 48 left: 100%; 49 transform: translate(-($spacer*3)); 50 opacity: 0; 51 color: $primary; 52 background: #fff; 53 padding: $spacer *0.75; 54 transition: $transition; 55 border-radius: $borderRadius * 1.75; 56 } 57 &:hover{ 58 color: #fff; 59 span{ 60 opacity: 1; 61 transform: translate(0); 62 } 63 } 64 } 65 &__menu{ 66 position: relative; 67 } 68 &__item{ 69 &:last-child{ 70 &:before{ 71 content: ''; 72 position: absolute; 73 opacity: 0; 74 z-index: -1; 75 top: 0; 76 left: $spacer; 77 width: $linkHeight; 78 height: $linkHeight; 79 background: $primary; 80 border-radius: $borderRadius * 1.75; 81 transition: $timing cubic-bezier(1, 0.2, 0.1, 1.2) all; 82 83 } 84 } 85 86 @for $i from 1 to 12 { 87 &:first-child:nth-last-child(#{$i}), 88 &:first-child:nth-last-child(#{$i}) ~ li { 89 &:hover { 90 ~ li:last-child:before { 91 opacity: 1; 92 } 93 } 94 &:last-child:hover:before { 95 opacity: 1; 96 } 97 @for $j from 1 to $i { 98 &:nth-child(#{$j}):hover, 99 &:nth-child(#{$j}):focus, 100 &:nth-child(#{$j}):focus-within { 101 ~ li:last-child:before { 102 @include gooeyEffect($j); 103 top: (100% / $i) * ($j - 1); 104 animation: gooeyEffect-#{$j} $timing 1; 105 } 106 } 107 } 108 &:last-child:hover:before, 109 &:last-child:focus:before, 110 &:last-child:focus-within:before { 111 @include gooeyEffect($i); 112 top: (100% / $i) * ($i - 1); 113 animation: gooeyEffect-#{$i} $timing 1; 114 } 115 } 116 } 117 118 } 119 120}
js
1feather.replace() 2//https://twitter.com/One_div
最後に
それぞれのファイル名を
HTML => nav.html
CSS =>nav.css(cssフォルダ直下に作成)
js =>nav.js
としています。
HTMLのheadタグの中に下記の項目のみ追加してみましたが期待通りのレイアウトになりませんでした。
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript" src="nav.js"></script> <link href="css/nav.css" rel="stylesheet" type="text/css" media="all" />
実際に実装できた場合のリンクを貼り付けますのでそちらもご確認いただけると助かります。
参考にさせていただいているnavvar
何卒よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー