JSFiddle - React, Tailwind, and code Playground

HTML

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <header>
    </header>
    <div id="seperator"></div>
    <div id="content">
        <nav>
            <div class="topnav" id="myTopnav">
                <a href="index.html">Home</a>
                <a href="teaching.html">Teaching</a>
                
                <a class="hoverable" href="#">Research <i class="fa fa-caret-down"></i></a>
                <div class="hoverableMenu">
                    <a href="research.html">Overview</a>
                    <a href="publications.html">Publications</a>
                </div>
                
                <a class="hoverable" href="#">Students <i class="fa fa-caret-down"></i></a>
                <div class="hoverableMenu">
                    <a href="studentawards.html">Awards</a>
                    <a href="gallery.html">Gallery</a>
                </div>
                <a href="contact.html">Contact</a>
                <a href="javascript:void(0);" class="icon" onclick="myFunction()">
                    <i class="fa fa-bars"></i>
                </a>
            </div>          
        </nav>
        <main>
        </main>
        <footer>
        </footer>
    </div>
</body>
</html>

CSS

body{
    margin: 0px;
    background-color: lightblue;
    height: 100%;
    }
    header{
        /*This is for the header picture background*/
        background-size: 100%;
        background-image: url(resources/chem3D.png);
        background-repeat: no-repeat;
        /* vh = viewheight. Used in place of percentages when percentages don't seem to work. This is basically 30% but not really
        https://stackoverflow.com/questions/31039979/css-units-what-is-the-difference-between-vh-vw-and */
        min-height: 100%; 
    }
    /*Seperate the header from the content*/
    #seperator{
        height: 10px;
        background-color: black;
        margin:0;
        padding:0;
    }

    /*THe main content of the site. Where the Flex magic happens.*/
    #content{
        display: flex;
        margin: auto;
        height: auto;
    }

    /*Navigation Stuffs*/
    nav{
        width: 200px;
    }


    .topnav{
        overflow: hidden;
    }


    /*style of links in nav*/
    /* ADDED FLOAT LEFT */
    .topnav a{
        float: left;
        display: block;
        color: black;
        text-align: center;
        padding: 10px 5px 10px 15px;
        text-decoration: none;
        font-size: 1.2em;
        letter-spacing: 0.1em;
    }

    /* Drop down menu */
    a.hoverable:focus + div.hoverableMenu{
    display: block;
    float: left;
    }

    a.hoverable:hover{
        color:black;
    }
    div.hoverableMenu{
        display: none;
        width: 70%;
        margin-left:auto;
        margin-right:10px;
    }

    div.hoverableMenu>a{
        letter-spacing: 0em;
    }
    div.hoverableMenu:focus{
        display: block;
    }

    /*Mobile views*/
/*Tablet View*/
@media screen and (max-width: 900px){
    #seperator{
        display: none;
    }
    #content{
        height: 100%;
        display:flex;
        flex-wrap: wrap;
    }

    nav{
        width: 100%;
        flex-basis: 100%;
    }
    .topnav a{
        float: left;
    }

   ...

JavaScript

function myFunction() {
                var x = document.getElementById("myTopnav");
                if (x.className === "topnav") {
                    x.className += " responsive";
                } else {
                    x.className = "topnav";
                }
            }