iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 9
1
Modern Web

每日挖個坑,用坑填起耍廢聊天室!系列 第 9

九號坑,偽裝vscode介面建起來-sidebar

  • 分享至 

  • xImage
  •  

今天就先把基本的介面框框弄起來!

先看結果:

https://ithelp.ithome.com.tw/upload/images/20190924/20111962vPfEiwBaS2.png

如果問我說,左邊那些icon跟下面的terminal是幹嘛的,我只能告訴你,完全沒用阿哈哈哈哈哈哈目前沒想到可以拿來幹嘛,總之就是,裝飾用。

icon目前就載入fontawesome,挑幾個假裝的XD

fontawesome的部分直接用cdn的方式使用,在nuxt裡面用cdn要在nuxt.config裡面設定

在資料夾的最外層會找到nuxt.config,在裡面找到下面這段,在link裡面增加一段,就可以使用fontawesome了

head: {
    titleTemplate: '%s - ' + process.env.npm_package_name,
    title: process.env.npm_package_name || '',
    meta: [
      { charset: 'utf-8' },
      { name: 'viewport', content: 'width=device-width, initial-scale=1' },
      {
        hid: 'description',
        name: 'description',
        content: process.env.npm_package_description || ''
      }
    ],
    link: [
      { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' },
      // 加上下面這段fontawesome
      {
        rel: 'stylesheet',
        href:
          'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.10.2/css/all.min.css'
      }
    ]
  },

然後延續layouts > default.vue,之前塞進去的siderbar

https://ithelp.ithome.com.tw/upload/images/20190925/201119622Um2D3e0eo.png

<template>
  <div>
    <nav class="sidebar">
      // 以下使用fontawesome
      <i class="far fa-plus-square"></i>
      <i class="far fa-folder-open"></i>
      <i class="fas fa-search"></i>
      <i class="fas fa-draw-polygon"></i>
      <i class="fas fa-bezier-curve"></i>
    </nav>
    <div class="sidebar_content">
      <div class="sidebar_sec people_now">
        <div class="title">
          <i class="fas fa-chevron-down"></i>online
        </div>
        <div class="sidebar_sec_content">
          <ul>
            <li>member</li>
          </ul>
        </div>
      </div>
      <div class="sidebar_sec channel">
        <div class="title">
          <i class="fas fa-chevron-down"></i>channel
        </div>
        <div class="sidebar_sec_content">
          <ul>
            <li>
              channelname
            </li>
          </ul>
        </div>
      </div>
    </div>
    <div
      class="main"
      id="main"
    >
      <nuxt />
    </div>
  </div>
</template>

.sidebar.sidebar_content都要固定在視窗左邊所以都要使用position: fixed;,fixed會直接對應視窗固定位置,就算頁面很長往下滑,他也會卡在固定的位置,基本上就是抽離出來不跟其他的DOM互相影響位置(z-index除外)

左邊icon條.sidebar

.sidebar {
    position: fixed;
    width: 40px; 
    height: 100%; // 對應視窗大小撐到滿
    z-index: 10; // position屬性的堆疊順序
    background-color: $grayUi; // 顏色變數要載入變數SCSS檔,參考前篇
    i { // SCSS裡代表 .sidebar i {}
      font-size: 20px; 
      display: block; // <i>預設是inline,這邊要垂直排,就改成block
      text-align: center; // 文字置中
      height: 40px;
      line-height: 40px; //對應height:40px 用文字行高做單行垂直置中
      cursor: pointer; // 滑鼠滑上去會變成手指頭 雖然目前沒有要幹嘛 但繼續偽裝XD
      color: $textGray; // 文字顏色
      &:hover { // 滑鼠滑過特效
        color: $textLightGray; 
      }
    }
  }

右邊那區

  .sidebar_content {
    position: fixed;
    left: 40px; // icon那條設定寬度是40px,所以要留40px給左邊,不然會疊在一起
    top: 0;
    background-color: $grayBgLight;
    height: 100%; // 一樣是把高度撐滿
    width: 160px;
    z-index: 9;
    .title {
      background-color: $grayUi;
      padding: 2px 5px;
    }
    i {
      margin-right: 5px;
    }
  }

不負責任切版今天就先到這裡了~~(爬


上一篇
八號坑,安裝激怒人心的SCSS
下一篇
十號坑,終於做首頁啦~
系列文
每日挖個坑,用坑填起耍廢聊天室!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言