DAY 17 制作 Nav Bar - Header

整个画面中最先看到的是 header 的 nav bar ,就让我们从这里开始刻吧!

首先在 App.js 中放入 html 的内容,并且加上相应的 class 待会去做设定 style。

import "../src/assets/sass/main.sass";

function App() {
  return (
    <div className="container">
      <nav className="header">
        <div className="top">
          <label className="logo">VOGUE</label>
          <label className="menu">
            <label className="menu-item">
              <div className="dropdown">
                <a href="/" className="select">
                  taiwan
                </a>
              </div>
              <a href="/">membership</a> ---
            </label>
          </label>{" "}
        </div>
        <div className="sub-menu">
          <a href="/">FASHION</a>
          <a href="/">BEAUTY</a>
          <a href="/">ENTERTAINMENT</a>
          <a href="/">LIFESTYLE</a>
          <a href="/">LUXURY</a>
          <a href="/">VIDEO</a>
          <a href="/">VOGUE有意识</a>
        </div>
      </nav>
    </div>
  );
}

export default App;
  1. 直接使用字型设定去做 logo,就不另外做图了 因为我懒得做图
  2. 先把内容的位置摆放好,再来慢慢调整样式

_header.sass

接着我们来新增 _header.sass 这个 partial ,并且将它引入在 main.sass 中。

sass 中的阶层,从最大的 class → header 来开始做 style 的设定,依照 VOGUE 官网的样式去模仿,整个 header 底下会有 一个 box shadow,而这个属性就可以在 header 整个区块上去做设定了,依样画葫芦的去把剩下的内容设定完,而 padding 以及 margin 的部分则是先抓个大概值。

可以看到我的其他 class 设定是在 header 底下的,这麽做可以避免去渲染到其他相同名称的 class ,因为目前的设定只有在 header 下的 class 名称或是 tag 才会生效。

.header
    box-shadow: -2px 2px 5px #0000001a
    border-top: 12px solid $primary-color
    .top
        padding: 24px
    .logo
        font-size: 100px
        font-family: $logo-font
    .menu
        padding: 16px
        position: absolute
        right: 0px

    .dropdown
        position: relative
        display: inline-block

    .sub-menu
        border-top: 1px solid #caccce
        padding: 20px
        a
            letter-spacing: 0.2em
            padding: 8px
            font-size: 12px
            font-weight: 900
  1. top 的部分是 logo 和 membership 的区域,为了跟 breadcrumb 分开而设
  2. menu 区域包含国家选择以及 membership 以及选单 hamberger
  3. dropdown list style 之後设定,这边先给他他一个 inline-block 乖乖排队
  4. sub-menu 的部分则是设定如 VOGUE 官方的风格,拉开字距以及加粗字型,上方加上 border 以做区隔

今天就先把基本的内容摆好,接下来会来针对每个细项去做 style 的调整,感谢今天的收看~


除此之外,也欢迎大家走走逛逛关於我们团队夥伴的文章

lu23770127 - SASS 基础初学三十天

10u1 - 糟了!是世界奇观!

juck30808 - Python - 数位行销分析与 Youtube API 教学

HLD - 浅谈物件导向与Design Pattern介绍

SiQing47 - 前端?後端?你早晚都要全端的,何不从现在开始?


<<:  [Day17] Vue 3 单元测试 (Unit Testing) - Vue Test Utils + Jest 基本范例 & 核心语法

>>:  改善R^2 (1) | ML#Day24

Leet Code 3. Palindrome Number

原文 Given an integer x, return true if x is palindr...

【第21天】训练模型-模型组合与辨识isnull(二)

摘要 作业流程 设定资料集路径 找出每个中文字的阈值 任意选择奇数个模型组合後,产生模型权重表与利用...

Day15-seaborn(3)盒须图boxplot、热力图heatmap

盒胡图 可用来观察资料的分布情形 最大值、最小值、中位数、四分位数 一样使用Titanic资料集做示...

[Day 22] - 『转职工作的Lessons learned』 - GraphQL (Hasura) - Apollo Client

GraphQL (Hasura)系列,忘记介绍最一开始从前端连线到GraphQL (Hasura)一...

【Day01】React 简介

为什麽需要前端框架? 开发速度更快:可以使用 JavaScript 提供的功能(回圈、条件判断、变数...