From 7217f933f300e442309d41ebebb823d3042f2f18 Mon Sep 17 00:00:00 2001 From: b4-sharp <Bradley2.Sharp@live.uwe.ac.uk> Date: Fri, 14 Apr 2023 03:45:14 +0100 Subject: [PATCH] Update to bootstrap 5, improve footer and header --- store/templates/base.html | 143 ++++++++++++++++++++------------------ 1 file changed, 77 insertions(+), 66 deletions(-) diff --git a/store/templates/base.html b/store/templates/base.html index c2bb68f..7da443f 100644 --- a/store/templates/base.html +++ b/store/templates/base.html @@ -5,75 +5,91 @@ <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>{% block title %}{% endblock%}</title> - <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/css/bootstrap.min.css" - integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous"> - <link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='_main.css') }}"> <!-- Load the CSS. --> + <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" + integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous"> + <link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='_main.css') }}"> </head> -<body> - <nav class="navbar navbar-dark" style="background-color: #090809;"> - <a class="navbar-brand" href="{{ url_for('index')}}">ANTIQUES ONLINE</a> - </nav> - - <nav class="navbar navbar-expand-lg navbar-dark" style="background-color: #26282a"> - <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" - aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> - <span class="navbar-toggler-icon"></span> - </button> +<body class="d-flex flex-column min-vh-100"> + <!-- https://getbootstrap.com/docs/4.0/components/navbar/ --> + <nav class="navbar navbar-expand-lg navbar-dark" style="background-color: black"> + <div class="container-fluid"> + <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" + aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> + <span class="navbar-toggler-icon"></span> + </button> - <div class="collapse navbar-collapse" id="navbarSupportedContent"> - <ul class="navbar-nav mr-auto"> - <li class="nav-item"> - <a class="nav-link" href="{{ url_for('basket')}}">Basket</a> - </li> - <li class="nav-item"> - <a class="nav-link" href="{{ url_for('items')}}">Items</a> - </li> - <li class="nav-item"> - <a class="nav-link" href="{{ url_for('item_sets')}}">Item Sets</a> - </li> - {% if current_user.is_authenticated %} - <li class="nav-item"> - <a class="nav-link" href="{{ url_for('account')}}">Account</a> - </li> - <li class="nav-item"> - <a class="nav-link" href="{{ url_for('logout')}}">Logout</a> - </li> - <li class="nav-item"> + <!-- Once in mobile mode we want the home text to be inline with the burger menu. --> + <a href="/" class="text-light text-decoration-none d-block d-lg-none"> + <span class="fs-4">ANTIQUES ONLINE</span> + </a> - </li> - {% else %} - <li class="nav-item"> - <a class="nav-link" href="{{ url_for('login')}}">Login</a> - </li> - <li class="nav-item"> - <a class="nav-link" href="{{ url_for('register')}}">Register</a> - </li> - {% endif %} - </ul> - <span class="navbar-text" style="margin-right: 1em;"> - Welcome, {{ current_user.username }}! - </span> - <form method="POST" action="{{url_for('search')}}" class="form-inline my-2 my-lg-0"> - {{search_form.hidden_tag()}} - {{ search_form.query(class="form-control mr-sm-2")|safe}} - {% if search_form.query.errors %} - {% for error in search_form.query.errors %} - <div class="invalid-feedback">{{ error }}</div> - {% endfor %} - {% endif %} - {{search_form.submit(class="btn btn-outline-success my-2 my-sm-0")}} - </form> + <div class="collapse navbar-collapse" id="navbarSupportedContent"> + <div class="container"> + <!-- Use a row for columns to perfectly centre the title. --> + <div class="row"> + <div class="col-lg d-flex justify-content-start text-nowrap"> + <ul class="navbar-nav"> + <li class="nav-item"> + <a class="nav-link" href="{{ url_for('basket')}}">Basket</a> + </li> + <li class="nav-item"> + <a class="nav-link" href="{{ url_for('items')}}">Items</a> + </li> + <li class="nav-item"> + <a class="nav-link" href="{{ url_for('item_sets')}}">Item Sets</a> + </li> + {% if current_user.is_authenticated %} + <li class="nav-item"> + <a class="nav-link" href="{{ url_for('account')}}">Account</a> + </li> + <li class="nav-item"> + <a class="nav-link" href="{{ url_for('logout')}}">Logout</a> + </li> + {% else %} + <li class="nav-item"> + <a class="nav-link" href="{{ url_for('login')}}">Login</a> + </li> + <li class="nav-item"> + <a class="nav-link" href="{{ url_for('register')}}">Register</a> + </li> + {% endif %} + </ul> + </div> + <div class="col-lg d-flex justify-content-center"> + <!-- Just force it into the centre, it's basically already there anyway. --> + <a href="/" class="text-light text-decoration-none d-none d-lg-block" + style="position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);"> + <span class="fs-4">ANTIQUES ONLINE</span> + </a> + </div> + <div class="col-lg d-flex justify-content-end"> + <form method="POST" action="{{url_for('search')}}" class="d-flex"> + {{search_form.hidden_tag()}} + {{ search_form.query(class="form-control mr-sm-2")|safe}} + {% if search_form.query.errors %} + {% for error in search_form.query.errors %} + <div class="invalid-feedback">{{ error }}</div> + {% endfor %} + {% endif %} + {{search_form.submit(class="btn btn-outline-success")}} + </form> + </div> + </div> + </div> + </div> </div> </nav> {% block content %} <!-- Where HTML will go when extended. --> {% endblock %} - <footer class="d-flex flex-wrap justify-content-between align-items-center py-3 my-4 border-top"> - <p class="col-md-4 mb-0 text-muted">© 2023 Antique's Online</p> - + <!-- https://getbootstrap.com/docs/5.2/examples/footers/ --> + <!-- mt-auto will handle put the footer at the bottom if the content doesn't fill the viewport. + It requires the body to be d-flex flex-column min-vh-100 --> + <footer class="mt-auto d-flex flex-wrap justify-content-between align-items-center py-3 my-4 border-top"> + <p class="col-md-4 mb-0 text-muted px-2">© 2023 Antique's Online</p> <ul class="nav col-md-4 justify-content-end"> <li class="px-2 text-muted">Email: admin@antiquesonline.com</li> <li class="px-2 text-muted">|</li> @@ -81,15 +97,10 @@ </ul> </footer> - <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" - integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" - crossorigin="anonymous"></script> - <script src="https://cdn.jsdelivr.net/npm/popper.js@1.12.9/dist/umd/popper.min.js" - integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" - crossorigin="anonymous"></script> - <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/js/bootstrap.min.js" - integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" + <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" + integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script> + </body> </html> \ No newline at end of file -- GitLab