0812開発ログ


学習内容


YouTubeエリア全体を分割し、上部navを作成
githubソースコード

YouTube全体を分割

  • 上端navは、左側navが固定されており、コンテンツ部分は絶対的であり、すべての領域が3次元であるため、事前にすべての領域を囲むdivを作成する.最小幅値を指定します.一定の長さ以下の内容物は減少しません.
  • #wrapper {
        position: relative;
        width: 100%;
        height: 100%;
        min-width: 1320px;
    }

    上部nav領域の指定

    #youtube-top-nav {
        position: fixed;
        width: 100%;
        height: 56px;
        background-color: #212121;
    
        padding: 0 16px;
    }

    左側nav領域の指定

  • 左のnavメニューでの単独スクロールを防止するため、内部に含まれる内容の領域は全体の大きさよりやや小さい.
  • overflow: scroll常にスクロールする属性auto必要に応じてスクロールする属性
  • 3次元領域は、上、左、下などを利用してスペースを増やす.
  • #youtube-left-nav {
        position: fixed;
        overflow-y: auto;
        overflow-x: hidden;
    
        width: 240px;
        background-color: #212121;
    
        top: 56px;
        left: 0;
        bottom: 0;
    }
    #youtube-left-content {
        position: absolute;
        width: 225px;
        height: 100%;
        background-color: cadetblue;
    }

    メインコンテンツ領域の指定

    #youtube-main {
        position: absolute;
        background-color: #181818;
        
        top: 56px;
        left: 240px;
        right: 0;
        bottom: 0;
    }

    上部navの作成


    YouTubeロゴを追加

  • 講義では、全体画像として扱うが、適切なフラグ画像が見つからないため、画像とspanタグに文字を付けてflexでソートする方式を用いた.
  • <h1><a class="flex-start" href="#">
      <img src="img/youtube-logo-no-letter.png" alt="">
      <span>Youtube</span>
    </a></h1>
    #youtube-top-nav .nav-left h1 img {
        width: 20px;
        height: 15px;
        margin: auto 0;
    }
    #youtube-top-nav .nav-left h1 span {
        display: inline-block;
        margin-left: 5px;
        letter-spacing: -.5px;
        padding-bottom: 2px;
    }

    nav-center

  • flexの影響力の中央から外れるように絶対に使用する.
  • #youtube-top-nav .nav-center {
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
    }
  • search-wrap要素の色は、実際のyoutubeページのhsl値をコピーして使用します.
  • #youtube-top-nav .nav-center .search-wrap input {
        width: calc(100% - 65px);
        height: 30px;
        border: solid 1px  hsl(0deg 0% 21%);
        background-color: #212121;
        padding: 2px 6px;
    
        font-size: 14px;
        color: #ffffff;
    }
    #youtube-top-nav .nav-center .search-wrap .btn-search {
        width: 65px;
        height: 30px;
        border: solid 1px  hsl(0deg 0% 21%);
        background-color: hsl(0deg 0% 21%);
    }

    難点

  • 上端左のYouTubeロゴ部分に実際のロゴ画像を入れたいのですが、ダークモードの白いフォントに適した適切なロゴ画像が見つかりません.
  • 左側のメニューに内容を含む新しいエリアを作成し、heightを100%にしてブラウザを下にスクロールし、最後まで親のようにエリアを指定しなかった.
  • 解決策

  • 赤色再生ボタンは画像形式で再生し、YouTube文字はspan形式で再生する.この部分の左側の長さが長くなっているので、センターなど他の部分でも追加の長さ修正が必要です.
  • 現在は授業での議論は行われていないが、これも最下層を利用して増加するものと予想される.
  • 感想


    構造はTポジションと似ていますが、以前とは違って大きな領域をつかんでから始めたほうが効率的だと思います.