mirukiidaisuki0919
@mirukiidaisuki0919

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

レスポンシブデザイン

解決したいこと

990px以上でオープンボタンを非表示にして、メインナビを横並びに表示するコードの書き方は、これであってますか?

もっと簡単な書き方があれば教えてほしいです。

該当するソースコード

index.html
<div class="openbtn">
          <span></span>
          <span>MENU</span>
          <span></span>
        </div>
        <!-- openbtn -->

        <div id="sp-main-nav">
          <nav id="g-nav">
            <div id="g-nav-list">
              <ul>
                <li class="current">
                  <a href="#">
                    トップ
                  </a>
                </li>
                <!-- current -->

                <li><a href="#">お品書き</a></li>

                <li><a href="#">こだわり</a></li>

                <li><a href="#">交通アクセス</a></li>
              </ul>
            </div>
            <!-- #g-nav-list -->
          </nav>
          <!-- #g-nav -->

          <dl>
            <dt>ご予約・お問い合わせ</dt>
            <dd><a href="#">03-1234-5678</a></dd>
          </dl>

          <div class="circle-bg"></div>
        </div>
        <!-- #sp-main-nav -->

         <div id="pc-main-nav">
          <ul>
            <li class="current">
              <a href="#">
                トップ
              </a>
            </li>
            <!-- current -->

            <li><a href="#">お品書き</a></li>

            <li><a href="#">こだわり</a></li>

            <li><a href="#">交通アクセス</a></li>
          </ul>

          <dl>
            <dt>ご予約・お問い合わせ</dt>
            <dd><a href="#">03-1234-5678</a></dd>
          </dl>
        </div>
        <!-- #pc-main-nav -->
style.css
@media(min-width: 990px) {
	.openbtn {
		display: none;
	}
}
/*=================================================
            クリックしたら円形背景が拡大(下から)
=================================================*/

/*========= ナビゲーションのためのCSS ===============*/
#g-nav.panelactive {
	width: 100%;
	height: 100vh;
}


@media(min-width: 990px) {
	#g-nav.panelactive {
		display: none;
	}
}


/*丸の拡大*/
.circle-bg {
	position: fixed;
	z-index: 3;

	/*丸の形*/
	width: 100px;
	height: 100px;
	border-radius: 50%;
	background-color: #3e2058;

	/*丸のスタート位置と形状*/
	left: calc(50% - 50px); /*50%から円の半径を引いた値*/
	bottom: -50px;
	transform: scale(0); /*scaleをはじめは0に*/
	transition: all 0.6s; /*0.6秒かけてアニメーション*/
}


@media(min-width: 990px) {
	.circle-bg {
		display: none;
	}
}


.circle-bg.circleactive {
	transform: scale(50); /*クラスが付与されたらscaleを拡大*/
}


/*ナビゲーションの縦スクロール*/
#g-nav-list {
	display: none; /*はじめは表示なし*/

	/*ナビの数が増えた場合縦スクロール*/
	position: fixed;
	z-index: 999;
	width: 100%;
	height: 100vh;
	overflow: auto;
	-webkit-overflow-scrolling: touch;
}

#g-nav.panelactive #g-nav-list {
	display: block; /*クラスが付与されたら出現*/
}


/*ナビゲーション*/
#g-nav ul {
	opacity: 0; /*はじめは透過0*/

	/*ナビゲーション天地中央揃え*/
	position: absolute;
	z-index: 999;
	top: 40%;
	left: 50%;
	transform: translate(-50%, -40%);
}


/*背景が出現後にナビゲーションを表示*/
#g-nav.panelactive ul {
	opacity: 1;
}


/* 背景が出現後にナビゲーション li を表示 */
#g-nav.panelactive ul li {
	animation-name: gnaviAnime;
	animation-duration: 1s;
	animation-delay: 0.2s; /*0.2 秒遅らせて出現*/
	animation-fill-mode: forwards;
	opacity: 0;
}


@keyframes gnaviAnime {
	0% {
		transform: translateY(100px);
		opacity: 0;
	}

	100% {
		transform: translateY(0);
		opacity: 1;
	}
}


/*リストのレイアウト設定*/
#g-nav ul li {
	text-align: center;
}

#g-nav ul li a {
	display: block;
	position: relative;
	color: #fff;
	transition: all 0.3s;
	padding: 15px;
}

#g-nav ul li.current a::before,
#g-nav ul li a:hover::before {
	content: '';

	/*描画位置*/
	position: absolute;
	top: 48%;
	left: 0;

	/*線の形状*/
	width: 10px;
	height: 1px;
	color: #6a2e9e;
	background-color: #fff;
}

#sp-main-nav dl {
	display: none;
}

#sp-main-nav dl a {
	font-size: 1.2rem;
}

#sp-main-nav dl.telactive {
	display: block;
	position: fixed;
	z-index: 9999;
	left: 5%;
	bottom: 30px;
	width: 90%;
	color: #fff;
	border: 1px solid rgba(255, 255, 255, 0.8);
	text-align: center;
	padding: 10px 0;
	animation-name: UpAnime;
	animation-duration: 1s;
	animation-fill-mode: forwards;
}


@media(min-width: 420px) {
	#sp-main-nav dl.telactive {
		left: 20%;
		width: 60%;
	}
}


@media(min-width: 990px) {
	#sp-main-nav dl.telactive {
		display: none;
	}
}




#pc-main-nav {
	display: none;
} 

#pc-main-nav ul {
	display: flex;
}

#pc-main-nav ul li a {
	display: block;
	position: relative;
	color: #333;
	transition: all 0.3s;
	padding: 34px 25px;
}

#pc-main-nav ul li.current a::before,
#pc-main-nav ul li a:hover::before {
	content: '';

	/*描画位置*/
	position: absolute;
	top: 0;
	left: 50%;

	/*線の形状*/
	width: 1px;
	height: 20px;
	background-color: #000;

	/*線の動き1.4秒かけて動く。永遠にループ*/
	animation-name: gnavipathmove;
	animation-duration: 2.4s;
	animation-timing-function: ease-in-out;
	animation-iteration-count: infinite;
	opacity: 0;
}


/*高さ・位置・透過が変化して線が上から下に動く*/
@keyframes gnavipathmove {
	0% {
		top: 0;
		height: 0;
		opacity: 0;
	}

	30% {
		height: 20px;
		opacity: 1;
	}

	100% {
		top: 30px;
		height: 0;
		opacity: 0;
	}
}


#pc-main-nav dl {
	display: block;
	color: #fff;
	text-align: center;
	background-color: #3e2058;
	padding: 20px 40px;
}

#pc-main-nav dl a {
	font-size: 1.5vw;
	color: #fff;
}


@media(min-width: 990px) {
	#pc-main-nav {
		display: flex;
		justify-content: flex-end;
		align-items: center;
	}
}


#sp-main-nav dl dt,
#pc-main-nav dl dt {
	font-size: 0.8rem;
}

#sp-main-nav dl a,
#pc-main-nav dl a {
	color: #fff;
}




サイトデータを添付させていただきます。

0

1Answer

下はあなたの過去スレッドです。回答・レスをもらっておきながら放棄して新たの別のスレッドを立ててますが、スレッド一覧にノイズを増やす結果になっていて迷惑です。自重してください。

https://qiita.com/mirukiidaisuki0919/questions/710837bc0d9c28b60717
https://qiita.com/mirukiidaisuki0919/questions/59d2ccfb9d6fdcf5aac5
https://qiita.com/mirukiidaisuki0919/questions/a0eaefc40eefef1e1edb

0Like

Your answer might help someone💌