JSFiddle - React, Tailwind, and code Playground

by lueichun

HTML

<body>
    <html>
        <body>
            <header>
                <div><img src="https://imgur.com/YtOejpS.png" class="headerimg"></div>
                <div class="headernav">
                    <nav>
                        <a href="">訂位</a>
                        <a href="">查詢訂位</a>
                        <a href="">修改/取消訂位</a>
                        <a href="">查詢餐廳</a>
                        <a href="">推薦餐廳</a>
                        <a href="">關於我們</a>
                    </nav>
                    <nav>
                        <a href="">註冊</a>
                        <a href="">登入</a>
                        <a href="">忘記密碼?</a>

                    </nav>
                </div>
            </header>
            <main>
                <div class="mainDiv"><img src="https://imgur.com/tJuGXUM.png" id="mainImg"></div>
            </main>
            <footer>
                <div id="fooText">web © 2015 , Update @2023 Maintain by TSuiling ( tsuiling1020@gmail.com )</div>
            </footer>
        </body>
    </html>
</body

CSS

* {
        margin:0;
        padding:0;
        box-sizing: border-box;
    }
    header{
        display: flex;
        justify-content: space-between;
        height:20vh;
        background-image: linear-gradient(rgb(179, 39, 184), rgba(255, 255, 0, 0))
    }
    /* header正下一層是圖片框與nav框兩部分,圖片框包含img、nav框包含上、下兩個nav,
    所以header正下方會有2個div */
    /* header正下方第一個div */
    header div{
        /*background-color: rgb(212, 124, 23);*/
        width: 40%;
        height:100%;
    }
    header div .headerimg{
        display:inline-block;/*改成block也可*/
        height:100%;
        /* 這樣LOGO會有個預設寬度 */
        /* 改變LOGO預設寬度 */
        /* 方法一 */
        /*width:300px;*/
       /* 方法二 */
        transform: scaleX(3);
        transform-origin:0 0;
    }
    /* header正下方第二個div */
    header .headernav{
        /*background-color: aquamarine;*/
        display: flex;
        flex-direction:column;
        justify-content: space-between;
        /* 設定第2個div要占滿爸爸剩餘的空間 */
        /* width:60%; */
        /* 要讓第2個div可以依照爸爸剩餘的空間來動態縮放 */
        flex:1;
    }
    header .headernav nav{
        width:100%;/*這樣width也會有足夠的空間來放anchor,就可彈性增加anchor*/
        text-align: right;
        padding-right: 30px;
    }
    header .headernav nav a{
        background-color: #fffb0000;
        color: black;
        font-family:Arial, Helvetica, sans-serif;
        font-size: 25px;
        text-decoration: none;

        display: inline-block;
        height:100%;
        /* 兒子要相對爸爸來定位,爸爸要設定可以被相對定位 */
        position: relative;
    }
    /* 令anchor的底線是一個元素,較容易設定底線 */
    /* 但底線又不算是真正的元素,故設定底線為偽元素,且是位在anchor下方的偽元素 */
    header .headernav nav a::after{
        /* 這樣就是設定偽元素(底線)在anchor下一層(非anchor下方) */
        content: '';/*一定要寫,不然偽元素無法存在*/
        display:inline-block;/*偽元素預設是inline,要改成block才能有寬高*/
        height: 4px;
        width: 0%;  
        background-color: #000000;
        
        /* 令該偽元素在anchor下方 */
        position: absolute;
        left: 0;
        bottom: 0;  
        
       ...