kandi background
Explore Kits

font-v | Font version string reporting and modification library | User Interface library

 by   source-foundry Python Version: v2.1.0 License: No License

 by   source-foundry Python Version: v2.1.0 License: No License

Download this library from

kandi X-RAY | font-v Summary

font-v is a Python library typically used in Telecommunications, Media, Advertising, Marketing, User Interface applications. font-v has no bugs, it has no vulnerabilities, it has build file available and it has low support. You can install using 'pip install font-v' or download it from GitHub, PyPI.
font-v is an open source font version string library (libfv) and executable (font-v) for reading, reporting, modifying, and writing OpenType name table ID 5 records and head table fontRevision records in *.otf and *.ttf fonts. font-v is built with Python and can be used on Linux, macOS, and Windows platforms with current versions of the Python 2 and Python 3 interpreters.
Support
Support
Quality
Quality
Security
Security
License
License
Reuse
Reuse

kandi-support Support

  • font-v has a low active ecosystem.
  • It has 15 star(s) with 3 fork(s). There are 6 watchers for this library.
  • There were 2 major release(s) in the last 12 months.
  • There are 10 open issues and 36 have been closed. On average issues are closed in 50 days. There are 2 open pull requests and 0 closed requests.
  • It has a neutral sentiment in the developer community.
  • The latest version of font-v is v2.1.0
font-v Support
Best in #User Interface
Average in #User Interface
font-v Support
Best in #User Interface
Average in #User Interface

quality kandi Quality

  • font-v has 0 bugs and 0 code smells.
font-v Quality
Best in #User Interface
Average in #User Interface
font-v Quality
Best in #User Interface
Average in #User Interface

securitySecurity

  • font-v has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
  • font-v code analysis shows 0 unresolved vulnerabilities.
  • There are 0 security hotspots that need review.
font-v Security
Best in #User Interface
Average in #User Interface
font-v Security
Best in #User Interface
Average in #User Interface

license License

  • font-v does not have a standard license declared.
  • Check the repository for any license declaration and review the terms closely.
  • Without a license, all rights are reserved, and you cannot use the library in your applications.
font-v License
Best in #User Interface
Average in #User Interface
font-v License
Best in #User Interface
Average in #User Interface

buildReuse

  • font-v releases are available to install and integrate.
  • Deployable package is available in PyPI.
  • Build file is available. You can build the component from source.
  • Installation instructions, examples and code snippets are available.
  • It has 1902 lines of code, 195 functions and 16 files.
  • It has high code complexity. Code complexity directly impacts maintainability of the code.
font-v Reuse
Best in #User Interface
Average in #User Interface
font-v Reuse
Best in #User Interface
Average in #User Interface
Top functions reviewed by kandi - BETA

kandi has reviewed font-v and discovered the below as its top functions. This is intended to give you an instant insight into font-v implemented functionality, and help decide if they suit your requirements.

  • Main entry point .
  • Return a string representation of the object .
  • Initialize the TTFont object .
  • Create a dictionary of definitions .
  • Determine the git repo root of a font file .
  • Read the version .
  • Make a set of switches from the argument list .
  • Make a set of switch context variables .
  • Check if filepath is a font .
  • Returns the index of a test argument .

font-v Key Features

Enter the following to display the head fontRevision version number and name ID 5 font version string for the font Example-Regular.ttf:.

Install with pip

copy iconCopydownload iconDownload
$ pip install font-v

Upgrade with pip

copy iconCopydownload iconDownload
$ pip install --upgrade font-v

font-v Executable Usage

copy iconCopydownload iconDownload
$ font-v [subcommand] (options) [font path 1] ([font path ...])

Version string reporting with

copy iconCopydownload iconDownload
$ font-v report Example-Regular.ttf

Version number modification with

copy iconCopydownload iconDownload
$ font-v write --ver=2.020 Example-Regular.ttf

git SHA1 commit short hash state metadata with

copy iconCopydownload iconDownload
$ font-v write --sha1 Example-Regular.ttf

Add development / release status metadata with

copy iconCopydownload iconDownload
$ font-v write --dev Example-Regular.ttf

Import

copy iconCopydownload iconDownload
from fontv.libfv import FontVersion

Create an Instance of the

copy iconCopydownload iconDownload
# Instantiate with a file path to the .ttf or .otf font
fv = FontVersion("path/to/font")

What You Can Do with the

copy iconCopydownload iconDownload
fv = FontVersion("path/to/font")
vs = fv.get_name_id5_version_string()

Dropdown menu not displaying correctly when hovering over

copy iconCopydownload iconDownload
.sub-menu > li:hover > a:hover {
  color: white;
  background-color: orangered;
  border-radius: 10px;
}
div > ul > li {
  list-style: none;
  display: inline-block;
  margin: 0 20px;
  font-weight: bolder;
  font-size: large;
  font-variant: small-caps;
  position: relative;
}
ul > li > a {
  text-decoration: none;
  color: white;
}
.sub-menu {
  position: absolute;
  display: none;
}
ul > li:hover > .sub-menu:hover {
   background: orange;
}
ul > li:hover > .sub-menu {
  display: block;
  background-color: white;
  margin: 0px;
  padding-left: 10px;
  width: 400px;
  height: 200px;
  box-shadow: 0 0 10px;
  border-radius: 10px;
  list-style-type: none;
  text-align: left;
}
.sub-menu > li > a {
  color: orangered;
  padding: 0 10px;

}
.sub-menu > li:hover > a:hover {
  color: white;
  background-color: orangered;
  border-radius: 10px;
}
ul > li > a:hover {
  color: yellow;
}

div {
  background-color: orangered;
  height: 100px;
  text-align: center;
  line-height: 100px;
}
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <link rel="stylesheet" href="CSS/Bai2.css" />
  </head>
  <body>
    <div>
      <ul>
        <li><a href="#">Home </a></li>
        <li><a href="#">Intro </a></li>
        <li>
          <a href="#">Contact </a>
          <ul class="sub-menu">
            <li><a href="#">Mobile</a></li>
            <li><a href="#">Email</a></li>
          </ul>
        </li>
        <li><a href="#">Help </a></li>
        <li><a href="#">Q&A </a></li>
      </ul>
    </div>
  </body>
</html>
div>ul>li {
  list-style: none;
  display: inline-block;
  margin: 0 20px;
  font-weight: bolder;
  font-size: large;
  font-variant: small-caps;
  position: relative;
}

ul>li>a {
  text-decoration: none;
  color: white;
}

.sub-menu {
  position: absolute;
  display: none;
}

ul>li:hover>.sub-menu:hover {
  background: orange;
}

ul>li:hover>.sub-menu {
  display: block;
  background-color: white;
  margin: 0px;
  padding-left: 0;
  z-index: 9;
  width: 400px;
  height: 200px;
  box-shadow: 0 0 10px;
  border-radius: 10px;
  list-style-type: none;
  text-align: left;
}

.sub-menu>li>a {
  color: orangered;
  padding: 0 10px;
}

.sub-menu>li:hover {
  background-color: orangered;
  color: yellow;
  border-radius: 10px;
  border: solid 1px;
}

.sub-menu>li:hover>a {
  color: white;
}

ul>li>a:hover {
  color: yellow;
}

div {
  background-color: orangered;
  height: 100px;
  text-align: center;
  line-height: 100px;
}
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8" />
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>Document</title>
  <link rel="stylesheet" href="CSS/Bai2.css" />
</head>

<body>
  <div>
    <ul>
      <li><a href="#">Home </a></li>
      <li><a href="#">Intro </a></li>
      <li>
        <a href="#">Contact </a>
        <ul class="sub-menu">
          <li><a href="#">Mobile</a></li>
          <li><a href="#">Email</a></li>
        </ul>
      </li>
      <li><a href="#">Help </a></li>
      <li><a href="#">Q&A </a></li>
    </ul>
  </div>
</body>

</html>
-----------------------
.sub-menu > li:hover > a:hover {
  color: white;
  background-color: orangered;
  border-radius: 10px;
}
div > ul > li {
  list-style: none;
  display: inline-block;
  margin: 0 20px;
  font-weight: bolder;
  font-size: large;
  font-variant: small-caps;
  position: relative;
}
ul > li > a {
  text-decoration: none;
  color: white;
}
.sub-menu {
  position: absolute;
  display: none;
}
ul > li:hover > .sub-menu:hover {
   background: orange;
}
ul > li:hover > .sub-menu {
  display: block;
  background-color: white;
  margin: 0px;
  padding-left: 10px;
  width: 400px;
  height: 200px;
  box-shadow: 0 0 10px;
  border-radius: 10px;
  list-style-type: none;
  text-align: left;
}
.sub-menu > li > a {
  color: orangered;
  padding: 0 10px;

}
.sub-menu > li:hover > a:hover {
  color: white;
  background-color: orangered;
  border-radius: 10px;
}
ul > li > a:hover {
  color: yellow;
}

div {
  background-color: orangered;
  height: 100px;
  text-align: center;
  line-height: 100px;
}
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <link rel="stylesheet" href="CSS/Bai2.css" />
  </head>
  <body>
    <div>
      <ul>
        <li><a href="#">Home </a></li>
        <li><a href="#">Intro </a></li>
        <li>
          <a href="#">Contact </a>
          <ul class="sub-menu">
            <li><a href="#">Mobile</a></li>
            <li><a href="#">Email</a></li>
          </ul>
        </li>
        <li><a href="#">Help </a></li>
        <li><a href="#">Q&A </a></li>
      </ul>
    </div>
  </body>
</html>
div>ul>li {
  list-style: none;
  display: inline-block;
  margin: 0 20px;
  font-weight: bolder;
  font-size: large;
  font-variant: small-caps;
  position: relative;
}

ul>li>a {
  text-decoration: none;
  color: white;
}

.sub-menu {
  position: absolute;
  display: none;
}

ul>li:hover>.sub-menu:hover {
  background: orange;
}

ul>li:hover>.sub-menu {
  display: block;
  background-color: white;
  margin: 0px;
  padding-left: 0;
  z-index: 9;
  width: 400px;
  height: 200px;
  box-shadow: 0 0 10px;
  border-radius: 10px;
  list-style-type: none;
  text-align: left;
}

.sub-menu>li>a {
  color: orangered;
  padding: 0 10px;
}

.sub-menu>li:hover {
  background-color: orangered;
  color: yellow;
  border-radius: 10px;
  border: solid 1px;
}

.sub-menu>li:hover>a {
  color: white;
}

ul>li>a:hover {
  color: yellow;
}

div {
  background-color: orangered;
  height: 100px;
  text-align: center;
  line-height: 100px;
}
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8" />
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>Document</title>
  <link rel="stylesheet" href="CSS/Bai2.css" />
</head>

<body>
  <div>
    <ul>
      <li><a href="#">Home </a></li>
      <li><a href="#">Intro </a></li>
      <li>
        <a href="#">Contact </a>
        <ul class="sub-menu">
          <li><a href="#">Mobile</a></li>
          <li><a href="#">Email</a></li>
        </ul>
      </li>
      <li><a href="#">Help </a></li>
      <li><a href="#">Q&A </a></li>
    </ul>
  </div>
</body>

</html>
-----------------------
.sub-menu > li:hover > a:hover {
  color: white;
  background-color: orangered;
  border-radius: 10px;
}
div > ul > li {
  list-style: none;
  display: inline-block;
  margin: 0 20px;
  font-weight: bolder;
  font-size: large;
  font-variant: small-caps;
  position: relative;
}
ul > li > a {
  text-decoration: none;
  color: white;
}
.sub-menu {
  position: absolute;
  display: none;
}
ul > li:hover > .sub-menu:hover {
   background: orange;
}
ul > li:hover > .sub-menu {
  display: block;
  background-color: white;
  margin: 0px;
  padding-left: 10px;
  width: 400px;
  height: 200px;
  box-shadow: 0 0 10px;
  border-radius: 10px;
  list-style-type: none;
  text-align: left;
}
.sub-menu > li > a {
  color: orangered;
  padding: 0 10px;

}
.sub-menu > li:hover > a:hover {
  color: white;
  background-color: orangered;
  border-radius: 10px;
}
ul > li > a:hover {
  color: yellow;
}

div {
  background-color: orangered;
  height: 100px;
  text-align: center;
  line-height: 100px;
}
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <link rel="stylesheet" href="CSS/Bai2.css" />
  </head>
  <body>
    <div>
      <ul>
        <li><a href="#">Home </a></li>
        <li><a href="#">Intro </a></li>
        <li>
          <a href="#">Contact </a>
          <ul class="sub-menu">
            <li><a href="#">Mobile</a></li>
            <li><a href="#">Email</a></li>
          </ul>
        </li>
        <li><a href="#">Help </a></li>
        <li><a href="#">Q&A </a></li>
      </ul>
    </div>
  </body>
</html>
div>ul>li {
  list-style: none;
  display: inline-block;
  margin: 0 20px;
  font-weight: bolder;
  font-size: large;
  font-variant: small-caps;
  position: relative;
}

ul>li>a {
  text-decoration: none;
  color: white;
}

.sub-menu {
  position: absolute;
  display: none;
}

ul>li:hover>.sub-menu:hover {
  background: orange;
}

ul>li:hover>.sub-menu {
  display: block;
  background-color: white;
  margin: 0px;
  padding-left: 0;
  z-index: 9;
  width: 400px;
  height: 200px;
  box-shadow: 0 0 10px;
  border-radius: 10px;
  list-style-type: none;
  text-align: left;
}

.sub-menu>li>a {
  color: orangered;
  padding: 0 10px;
}

.sub-menu>li:hover {
  background-color: orangered;
  color: yellow;
  border-radius: 10px;
  border: solid 1px;
}

.sub-menu>li:hover>a {
  color: white;
}

ul>li>a:hover {
  color: yellow;
}

div {
  background-color: orangered;
  height: 100px;
  text-align: center;
  line-height: 100px;
}
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8" />
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>Document</title>
  <link rel="stylesheet" href="CSS/Bai2.css" />
</head>

<body>
  <div>
    <ul>
      <li><a href="#">Home </a></li>
      <li><a href="#">Intro </a></li>
      <li>
        <a href="#">Contact </a>
        <ul class="sub-menu">
          <li><a href="#">Mobile</a></li>
          <li><a href="#">Email</a></li>
        </ul>
      </li>
      <li><a href="#">Help </a></li>
      <li><a href="#">Q&A </a></li>
    </ul>
  </div>
</body>

</html>
-----------------------
.sub-menu > li:hover > a:hover {
  color: white;
  background-color: orangered;
  border-radius: 10px;
}
div > ul > li {
  list-style: none;
  display: inline-block;
  margin: 0 20px;
  font-weight: bolder;
  font-size: large;
  font-variant: small-caps;
  position: relative;
}
ul > li > a {
  text-decoration: none;
  color: white;
}
.sub-menu {
  position: absolute;
  display: none;
}
ul > li:hover > .sub-menu:hover {
   background: orange;
}
ul > li:hover > .sub-menu {
  display: block;
  background-color: white;
  margin: 0px;
  padding-left: 10px;
  width: 400px;
  height: 200px;
  box-shadow: 0 0 10px;
  border-radius: 10px;
  list-style-type: none;
  text-align: left;
}
.sub-menu > li > a {
  color: orangered;
  padding: 0 10px;

}
.sub-menu > li:hover > a:hover {
  color: white;
  background-color: orangered;
  border-radius: 10px;
}
ul > li > a:hover {
  color: yellow;
}

div {
  background-color: orangered;
  height: 100px;
  text-align: center;
  line-height: 100px;
}
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <link rel="stylesheet" href="CSS/Bai2.css" />
  </head>
  <body>
    <div>
      <ul>
        <li><a href="#">Home </a></li>
        <li><a href="#">Intro </a></li>
        <li>
          <a href="#">Contact </a>
          <ul class="sub-menu">
            <li><a href="#">Mobile</a></li>
            <li><a href="#">Email</a></li>
          </ul>
        </li>
        <li><a href="#">Help </a></li>
        <li><a href="#">Q&A </a></li>
      </ul>
    </div>
  </body>
</html>
div>ul>li {
  list-style: none;
  display: inline-block;
  margin: 0 20px;
  font-weight: bolder;
  font-size: large;
  font-variant: small-caps;
  position: relative;
}

ul>li>a {
  text-decoration: none;
  color: white;
}

.sub-menu {
  position: absolute;
  display: none;
}

ul>li:hover>.sub-menu:hover {
  background: orange;
}

ul>li:hover>.sub-menu {
  display: block;
  background-color: white;
  margin: 0px;
  padding-left: 0;
  z-index: 9;
  width: 400px;
  height: 200px;
  box-shadow: 0 0 10px;
  border-radius: 10px;
  list-style-type: none;
  text-align: left;
}

.sub-menu>li>a {
  color: orangered;
  padding: 0 10px;
}

.sub-menu>li:hover {
  background-color: orangered;
  color: yellow;
  border-radius: 10px;
  border: solid 1px;
}

.sub-menu>li:hover>a {
  color: white;
}

ul>li>a:hover {
  color: yellow;
}

div {
  background-color: orangered;
  height: 100px;
  text-align: center;
  line-height: 100px;
}
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8" />
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>Document</title>
  <link rel="stylesheet" href="CSS/Bai2.css" />
</head>

<body>
  <div>
    <ul>
      <li><a href="#">Home </a></li>
      <li><a href="#">Intro </a></li>
      <li>
        <a href="#">Contact </a>
        <ul class="sub-menu">
          <li><a href="#">Mobile</a></li>
          <li><a href="#">Email</a></li>
        </ul>
      </li>
      <li><a href="#">Help </a></li>
      <li><a href="#">Q&A </a></li>
    </ul>
  </div>
</body>

</html>
-----------------------
.sub-menu > li:hover > a:hover {
  color: white;
  background-color: orangered;
  border-radius: 10px;
}
div > ul > li {
  list-style: none;
  display: inline-block;
  margin: 0 20px;
  font-weight: bolder;
  font-size: large;
  font-variant: small-caps;
  position: relative;
}
ul > li > a {
  text-decoration: none;
  color: white;
}
.sub-menu {
  position: absolute;
  display: none;
}
ul > li:hover > .sub-menu:hover {
   background: orange;
}
ul > li:hover > .sub-menu {
  display: block;
  background-color: white;
  margin: 0px;
  padding-left: 10px;
  width: 400px;
  height: 200px;
  box-shadow: 0 0 10px;
  border-radius: 10px;
  list-style-type: none;
  text-align: left;
}
.sub-menu > li > a {
  color: orangered;
  padding: 0 10px;

}
.sub-menu > li:hover > a:hover {
  color: white;
  background-color: orangered;
  border-radius: 10px;
}
ul > li > a:hover {
  color: yellow;
}

div {
  background-color: orangered;
  height: 100px;
  text-align: center;
  line-height: 100px;
}
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <link rel="stylesheet" href="CSS/Bai2.css" />
  </head>
  <body>
    <div>
      <ul>
        <li><a href="#">Home </a></li>
        <li><a href="#">Intro </a></li>
        <li>
          <a href="#">Contact </a>
          <ul class="sub-menu">
            <li><a href="#">Mobile</a></li>
            <li><a href="#">Email</a></li>
          </ul>
        </li>
        <li><a href="#">Help </a></li>
        <li><a href="#">Q&A </a></li>
      </ul>
    </div>
  </body>
</html>
div>ul>li {
  list-style: none;
  display: inline-block;
  margin: 0 20px;
  font-weight: bolder;
  font-size: large;
  font-variant: small-caps;
  position: relative;
}

ul>li>a {
  text-decoration: none;
  color: white;
}

.sub-menu {
  position: absolute;
  display: none;
}

ul>li:hover>.sub-menu:hover {
  background: orange;
}

ul>li:hover>.sub-menu {
  display: block;
  background-color: white;
  margin: 0px;
  padding-left: 0;
  z-index: 9;
  width: 400px;
  height: 200px;
  box-shadow: 0 0 10px;
  border-radius: 10px;
  list-style-type: none;
  text-align: left;
}

.sub-menu>li>a {
  color: orangered;
  padding: 0 10px;
}

.sub-menu>li:hover {
  background-color: orangered;
  color: yellow;
  border-radius: 10px;
  border: solid 1px;
}

.sub-menu>li:hover>a {
  color: white;
}

ul>li>a:hover {
  color: yellow;
}

div {
  background-color: orangered;
  height: 100px;
  text-align: center;
  line-height: 100px;
}
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8" />
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>Document</title>
  <link rel="stylesheet" href="CSS/Bai2.css" />
</head>

<body>
  <div>
    <ul>
      <li><a href="#">Home </a></li>
      <li><a href="#">Intro </a></li>
      <li>
        <a href="#">Contact </a>
        <ul class="sub-menu">
          <li><a href="#">Mobile</a></li>
          <li><a href="#">Email</a></li>
        </ul>
      </li>
      <li><a href="#">Help </a></li>
      <li><a href="#">Q&A </a></li>
    </ul>
  </div>
</body>

</html>

Fixed flexbox sidebar with scrollable content - no solutions work

copy iconCopydownload iconDownload
position:fixed;
left: 0; // plus additional margin 
-----------------------
div {
  font-family: 'Montserrat', sans-serif;
}

body {
  background-color: rgb(233, 233, 233);
  padding: 0;
  margin: 0;
}

.sitewrapper {
  display: flex;
  justify-content: space-between;
}


/* Sidebar */

.sidebar {
  width: 250px;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  margin-left: 80px;
  margin-right: 80px;
  position: sticky;
  top: 0;
  height: 100%
}

.title-item {
  margin-top: 70px;
  margin-bottom: 60px;
  font-size: xx-large;
  font-weight: 600;
  font-variant: small-caps;
  letter-spacing: 4px;
}

.side-spacer {
  margin-top: 12px;
  margin-bottom: 12px;
}

.side-item {
  margin-top: 12px;
  margin-bottom: 12px;
  font-size: larger;
  font-weight: 500;
  letter-spacing: 1px;
}

.rights {
  margin-top: 80px;
  max-width: 225px;
  line-height: 25px;
  font-size: small;
  color: rgb(110, 110, 110);
}


/* Main Content Area */


/* Header to be used on all pages */

.header {
  margin-top: 80px;
  margin-bottom: 80px;
  border-bottom: 1px solid;
}

.main-container {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  max-height: 100%;
}

.imagecontainer-parent {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: stretch;
}

.imagecontainer {
  max-height: 450px;
  max-width: 450px;
}

img {
  height: 100%;
  width: 100%;
  object-fit: contain;
}
<!DOCTYPE html>
<html lang="en">

<!--- Head --->

<head>
  <link rel="preconnect" href="https://fonts.googleapis.com">
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  <link href="https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap" rel="stylesheet">
  <link rel="stylesheet" href="style.css">
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>J.S. Marino</title>
</head>

<!--- Body --->

<body id="body">
  <div class="sitewrapper">
    <div class="sidebar">
      <div class="title-item">J.S. Marino</div>
      <div class="side-item">Writing</div>
      <div class="side-item">Photography</div>
      <div class="side-item">Eureka</div>
      <div class="side-spacer">&#8203;</div>
      <div class="side-item">About</div>
      <div class="side-item">Contact</div>
      <div class="rights">© 2020 - 2022 Jeremy Marino. All Rights Reserved.</div>
    </div>

    <div class="main-container">
      <div class="header">Test Page</div>
      <div class="imagecontainer-parent">
        <div class="imagecontainer">
          <img src="images/60362401_1407048259444464_8317741293019070464_n.jpg" alt="Blurry monochrome image of lonely workstation">
        </div>
        <div class="imagecontainer">
          <img src="images/2.jpg" alt="An ethereal waterfront">
        </div>
      </div>
      <p>Lorem ipsum dolor sit amet, ea vix dolor dictas mnesarchum. Ad mel omnis debet. Utinam vituperatoribus quo at. Sit te solum oporteat, ad quaeque fierent nec. No minimum probatus qui. Tollit graece verterem mei ut, munere latine no vis, brute dolorem
        ancillae his cu. Nec vero nihil ut, usu vide accommodare no. Ne dicit nominati maiestatis usu, vis id amet definitiones. Cu sed brute scripserit, vidisse dolorem sea te, prima consulatu per ei. Ut quo discere vituperata argumentum, oportere adversarium
        eam ne. Mea munere denique voluptatum ea, et vidit graece inciderint nam. Mea ad audire concludaturque, mel eu aliquam corrumpit. Vim no probo errem fuisset. At primis blandit laboramus pro. Ad velit doming eam, fabulas tibique efficiantur cum
        no, deserunt explicari et eam. Simul homero pri ut. Vis ea tale autem lorem, vim ea regione atomorum constituto. Ei vix sapientem patrioque, mei omnesque pertinacia ad. Id cum error iudico, vis dicta ancillae definiebas et, eos ad euismod omittam.
        No sed meis torquatos, vel in tamquam luptatum, cu nulla mandamus his. Reque accumsan sententiae ius cu, eu nominavi appetere mea. Cu impetus diceret consequat nam, pro cu alterum periculis. Sonet vituperata te vis, ea quo nullam atomorum assueverit.
        Recusabo sententiae at vix. Duo autem simul oporteat ex, putent tritani ne quo. Ei inani commune reformidans eum, sonet putent noster eum ex, eam ne sumo eligendi tacimates. Dictas sanctus similique ad usu. Ea sint vidit tempor cum, mentitum electram
        imperdiet quo an. Enim officiis id mea. Rebum ignota eruditi mea ei. No nisl consequat cum. Mel cu malis etiam splendide, an veniam percipitur nam, dolore feugiat scripserit ex vis. Pro nonumy utroque in. Eos eu timeam mentitum insolens, sit viris
        euripidis dissentiet ad, usu ut alia possim luptatum. Facete aliquip petentium eam ad, ne est ferri clita putent. Vis munere mucius vivendum id. Quot complectitur et duo, te est aeterno fastidii incorrupte. Solum populo vix id, error probatus
        quaerendum mea at, choro invenire maiestatis ex mei. Ea nec graecis inciderint, populo pertinacia assueverit ne mel. Menandri partiendo te per. Cum no putant apeirian percipitur, habeo disputando pro ex. Eam equidem patrioque instructior ei, ea
        epicuri accusamus mel. In quo error oporteat consetetur. Mea te wisi cetero epicuri. Nec ei viris semper splendide. Sumo suscipiantur vim ea, ea sit accumsan tractatos adolescens. Vim ad autem signiferumque conclusionemque, et dico honestatis
        liberavisse his. Iusto melius concludaturque qui ei. His eu brute indoctum reprimique. Summo iudico tacimates eum et, per eu nihil diceret luptatum, mea latine inimicus evertitur ut. At quot phaedrum repudiare sea, mel et probo paulo disputationi,
        tota albucius eam ad. Malis sapientem his ea. Sea quis sonet audiam ut. Mea at paulo aliquid. Per ad veri impedit, harum exerci eligendi eu vim. Exerci graece temporibus ad vim, at quo apeirian patrioque efficiendi. No quo sapientem splendide
        deterruisset, qui quod omittantur ad. Qui an inani dicam fierent, voluptua gubergren in per. Vel ad munere impetus tincidunt, ea lorem prompta denique nam. Eu modus causae appetere his, quis ferri epicuri mei ea, vim ea eros inimicus moderatius.
        Ubique impetus interesset te sea. Ex exerci indoctum cum. Pri phaedrum dissentiunt cu, nonumy rationibus mel an. Mel ridens ornatus delicatissimi et, ignota delenit maiestatis ei vim. Clita alterum maiestatis vel et, nobis noluisse sententiae
        ut nam, no usu alii dolores conclusionemque. At decore option suscipit pro, an qui epicurei disputationi. Sit at viris facilis perpetua, eam nostrud facilisis ei. Te ius purto nihil facilisi, an vis utinam aliquam. Eum ad delenit intellegam, ius
        alii meis tacimates in. In eum amet fabellas. Ignota habemus no pro, ad purto labitur mea, te quaeque periculis eum. In eam veniam accumsan evertitur. At cum semper euismod, has et offendit sensibus, no summo tincidunt assueverit pro. Ut munere
        tritani democritum nec, amet natum salutatus eu sit. Ne usu modus omnium aliquam. Erant consequuntur no quo, nec in nihil nostro vituperata. Rationibus sadipscing signiferumque ne duo, te vis postulant consequat interpretaris, nominavi salutandi
        nam cu. No vim zril ignota, nam expetendis intellegam cu. Cum case malorum voluptatum an, te ornatus fabellas complectitur his. Vim lorem ponderum ex, affert albucius ius no. Nemore ancillae quo et. Et natum everti accusamus eam, mea fugit populo
        appetere ad. Eu ferri delicata eam, ea liber menandri antiopam mei, an singulis salutatus eam. Pro an errem simul, usu id elit tollit abhorreant. Veniam populo per et, sea in meis quando. Has suavitate maluisset ea. Modo case te vim, sit in facete
        feugiat pertinax, veri habeo at quo. Harum senserit sea ne, platonem sapientem ea vel. Vim admodum feugait perfecto ne, graeci audire te mei. Deserunt pericula mel ut, officiis neglegentur ius ea. Rebum eloquentiam contentiones cu sit, cu has
        possit temporibus, sed quem erat alterum ut. Id sea apeirian molestiae. Ea sed doctus omittam, hendrerit forensibus sed ut. Ne mazim deleniti vituperata eam, ex everti pertinacia eum. In erant dignissim vim, id pro quidam dolorum. Cu explicari
        vituperata cum. Incorrupte definitiones usu ad. Ex has assum sapientem intellegebat, mei mentitum delectus quaestio ea, quas augue bonorum an pri. An molestie necessitatibus sea, laboramus consectetuer vis id. Eu ius mutat brute, pri tacimates
        inimicus ne, delicata vulputate vituperatoribus et mel. Timeam bonorum no his.Lorem ipsum dolor sit amet, ea vix dolor dictas mnesarchum. Ad mel omnis debet. Utinam vituperatoribus quo at. Sit te solum oporteat, ad quaeque fierent nec. No minimum
        probatus qui. Tollit graece verterem mei ut, munere latine no vis, brute dolorem ancillae his cu. Nec vero nihil ut, usu vide accommodare no. Ne dicit nominati maiestatis usu, vis id amet definitiones. Cu sed brute scripserit, vidisse dolorem
        sea te, prima consulatu per ei. Ut quo discere vituperata argumentum, oportere adversarium eam ne. Mea munere denique voluptatum ea, et vidit graece inciderint nam. Mea ad audire concludaturque, mel eu aliquam corrumpit. Vim no probo errem fuisset.
        At primis blandit laboramus pro. Ad velit doming eam, fabulas tibique efficiantur cum no, deserunt explicari et eam. Simul homero pri ut. Vis ea tale autem lorem, vim ea regione atomorum constituto. Ei vix sapientem patrioque, mei omnesque pertinacia
        ad. Id cum error iudico, vis dicta ancillae definiebas et, eos ad euismod omittam. No sed meis torquatos, vel in tamquam luptatum, cu nulla mandamus his. Reque accumsan sententiae ius cu, eu nominavi appetere mea. Cu impetus diceret consequat
        nam, pro cu alterum periculis. Sonet vituperata te vis, ea quo nullam atomorum assueverit. Recusabo sententiae at vix. Duo autem simul oporteat ex, putent tritani ne quo. Ei inani commune reformidans eum, sonet putent noster eum ex, eam ne sumo
        eligendi tacimates. Dictas sanctus similique ad usu. Ea sint vidit tempor cum, mentitum electram imperdiet quo an. Enim officiis id mea. Rebum ignota eruditi mea ei. No nisl consequat cum. Mel cu malis etiam splendide, an veniam percipitur nam,
        dolore feugiat scripserit ex vis. Pro nonumy utroque in. Eos eu timeam mentitum insolens, sit viris euripidis dissentiet ad, usu ut alia possim luptatum. Facete aliquip petentium eam ad, ne est ferri clita putent. Vis munere mucius vivendum id.
        Quot complectitur et duo, te est aeterno fastidii incorrupte. Solum populo vix id, error probatus quaerendum mea at, choro invenire maiestatis ex mei. Ea nec graecis inciderint, populo pertinacia assueverit ne mel. Menandri partiendo te per. Cum
        no putant apeirian percipitur, habeo disputando pro ex. Eam equidem patrioque instructior ei, ea epicuri accusamus mel. In quo error oporteat consetetur. Mea te wisi cetero epicuri. Nec ei viris semper splendide. Sumo suscipiantur vim ea, ea sit
        accumsan tractatos adolescens. Vim ad autem signiferumque conclusionemque, et dico honestatis liberavisse his. Iusto melius concludaturque qui ei. His eu brute indoctum reprimique. Summo iudico tacimates eum et, per eu nihil diceret luptatum,
        mea latine inimicus evertitur ut. At quot phaedrum repudiare sea, mel et probo paulo disputationi, tota albucius eam ad. Malis sapientem his ea. Sea quis sonet audiam ut. Mea at paulo aliquid. Per ad veri impedit, harum exerci eligendi eu vim.
        Exerci graece temporibus ad vim, at quo apeirian patrioque efficiendi. No quo sapientem splendide deterruisset, qui quod omittantur ad. Qui an inani dicam fierent, voluptua gubergren in per. Vel ad munere impetus tincidunt, ea lorem prompta denique
        nam. Eu modus causae appetere his, quis ferri epicuri mei ea, vim ea eros inimicus moderatius. Ubique impetus interesset te sea. Ex exerci indoctum cum. Pri phaedrum dissentiunt cu, nonumy rationibus mel an. Mel ridens ornatus delicatissimi et,
        ignota delenit maiestatis ei vim. Clita alterum maiestatis vel et, nobis noluisse sententiae ut nam, no usu alii dolores conclusionemque. At decore option suscipit pro, an qui epicurei disputationi. Sit at viris facilis perpetua, eam nostrud facilisis
        ei. Te ius purto nihil facilisi, an vis utinam aliquam. Eum ad delenit intellegam, ius alii meis tacimates in. In eum amet fabellas. Ignota habemus no pro, ad purto labitur mea, te quaeque periculis eum. In eam veniam accumsan evertitur. At cum
        semper euismod, has et offendit sensibus, no summo tincidunt assueverit pro. Ut munere tritani democritum nec, amet natum salutatus eu sit. Ne usu modus omnium aliquam. Erant consequuntur no quo, nec in nihil nostro vituperata. Rationibus sadipscing
        signiferumque ne duo, te vis postulant consequat interpretaris, nominavi salutandi nam cu. No vim zril ignota, nam expetendis intellegam cu. Cum case malorum voluptatum an, te ornatus fabellas complectitur his. Vim lorem ponderum ex, affert albucius
        ius no. Nemore ancillae quo et. Et natum everti accusamus eam, mea fugit populo appetere ad. Eu ferri delicata eam, ea liber menandri antiopam mei, an singulis salutatus eam. Pro an errem simul, usu id elit tollit abhorreant. Veniam populo per
        et, sea in meis quando. Has suavitate maluisset ea. Modo case te vim, sit in facete feugiat pertinax, veri habeo at quo. Harum senserit sea ne, platonem sapientem ea vel. Vim admodum feugait perfecto ne, graeci audire te mei. Deserunt pericula
        mel ut, officiis neglegentur ius ea. Rebum eloquentiam contentiones cu sit, cu has possit temporibus, sed quem erat alterum ut. Id sea apeirian molestiae. Ea sed doctus omittam, hendrerit forensibus sed ut. Ne mazim deleniti vituperata eam, ex
        everti pertinacia eum. In erant dignissim vim, id pro quidam dolorum. Cu explicari vituperata cum. Incorrupte definitiones usu ad. Ex has assum sapientem intellegebat, mei mentitum delectus quaestio ea, quas augue bonorum an pri. An molestie necessitatibus
        sea, laboramus consectetuer vis id. Eu ius mutat brute, pri tacimates inimicus ne, delicata vulputate vituperatoribus et mel. Timeam bonorum no his.Lorem ipsum dolor sit amet, ea vix dolor dictas mnesarchum. Ad mel omnis debet. Utinam vituperatoribus
        quo at. Sit te solum oporteat, ad quaeque fierent nec. No minimum probatus qui. Tollit graece verterem mei ut, munere latine no vis, brute dolorem ancillae his cu. Nec vero nihil ut, usu vide accommodare no. Ne dicit nominati maiestatis usu, vis
        id amet definitiones. Cu sed brute scripserit, vidisse dolorem sea te, prima consulatu per ei. Ut quo discere vituperata argumentum, oportere adversarium eam ne. Mea munere denique voluptatum ea, et vidit graece inciderint nam. Mea ad audire concludaturque,
        mel eu aliquam corrumpit. Vim no probo errem fuisset. At primis blandit laboramus pro. Ad velit doming eam, fabulas tibique efficiantur cum no, deserunt explicari et eam. Simul homero pri ut. Vis ea tale autem lorem, vim ea regione atomorum constituto.
        Ei vix sapientem patrioque, mei omnesque pertinacia ad. Id cum error iudico, vis dicta ancillae definiebas et, eos ad euismod omittam. No sed meis torquatos, vel in tamquam luptatum, cu nulla mandamus his. Reque accumsan sententiae ius cu, eu
        nominavi appetere mea. Cu impetus diceret consequat nam, pro cu alterum periculis. Sonet vituperata te vis, ea quo nullam atomorum assueverit. Recusabo sententiae at vix. Duo autem simul oporteat ex, putent tritani ne quo. Ei inani commune reformidans
        eum, sonet putent noster eum ex, eam ne sumo eligendi tacimates. Dictas sanctus similique ad usu. Ea sint vidit tempor cum, mentitum electram imperdiet quo an. Enim officiis id mea. Rebum ignota eruditi mea ei. No nisl consequat cum. Mel cu malis
        etiam splendide, an veniam percipitur nam, dolore feugiat scripserit ex vis. Pro nonumy utroque in. Eos eu timeam mentitum insolens, sit viris euripidis dissentiet ad, usu ut alia possim luptatum. Facete aliquip petentium eam ad, ne est ferri
        clita putent. Vis munere mucius vivendum id. Quot complectitur et duo, te est aeterno fastidii incorrupte. Solum populo vix id, error probatus quaerendum mea at, choro invenire maiestatis ex mei. Ea nec graecis inciderint, populo pertinacia assueverit
        ne mel. Menandri partiendo te per. Cum no putant apeirian percipitur, habeo disputando pro ex. Eam equidem patrioque instructior ei, ea epicuri accusamus mel. In quo error oporteat consetetur. Mea te wisi cetero epicuri. Nec ei viris semper splendide.
        Sumo suscipiantur vim ea, ea sit accumsan tractatos adolescens. Vim ad autem signiferumque conclusionemque, et dico honestatis liberavisse his. Iusto melius concludaturque qui ei. His eu brute indoctum reprimique. Summo iudico tacimates eum et,
        per eu nihil diceret luptatum, mea latine inimicus evertitur ut. At quot phaedrum repudiare sea, mel et probo paulo disputationi, tota albucius eam ad. Malis sapientem his ea. Sea quis sonet audiam ut. Mea at paulo aliquid. Per ad veri impedit,
        harum exerci eligendi eu vim. Exerci graece temporibus ad vim, at quo apeirian patrioque efficiendi. No quo sapientem splendide deterruisset, qui quod omittantur ad. Qui an inani dicam fierent, voluptua gubergren in per. Vel ad munere impetus
        tincidunt, ea lorem prompta denique nam. Eu modus causae appetere his, quis ferri epicuri mei ea, vim ea eros inimicus moderatius. Ubique impetus interesset te sea. Ex exerci indoctum cum. Pri phaedrum dissentiunt cu, nonumy rationibus mel an.
        Mel ridens ornatus delicatissimi et, ignota delenit maiestatis ei vim. Clita alterum maiestatis vel et, nobis noluisse sententiae ut nam, no usu alii dolores conclusionemque. At decore option suscipit pro, an qui epicurei disputationi. Sit at
        viris facilis perpetua, eam nostrud facilisis ei. Te ius purto nihil facilisi, an vis utinam aliquam. Eum ad delenit intellegam, ius alii meis tacimates in. In eum amet fabellas. Ignota habemus no pro, ad purto labitur mea, te quaeque periculis
        eum. In eam veniam accumsan evertitur. At cum semper euismod, has et offendit sensibus, no summo tincidunt assueverit pro. Ut munere tritani democritum nec, amet natum salutatus eu sit. Ne usu modus omnium aliquam. Erant consequuntur no quo, nec
        in nihil nostro vituperata. Rationibus sadipscing signiferumque ne duo, te vis postulant consequat interpretaris, nominavi salutandi nam cu. No vim zril ignota, nam expetendis intellegam cu. Cum case malorum voluptatum an, te ornatus fabellas
        complectitur his. Vim lorem ponderum ex, affert albucius ius no. Nemore ancillae quo et. Et natum everti accusamus eam, mea fugit populo appetere ad. Eu ferri delicata eam, ea liber menandri antiopam mei, an singulis salutatus eam. Pro an errem
        simul, usu id elit tollit abhorreant. Veniam populo per et, sea in meis quando. Has suavitate maluisset ea. Modo case te vim, sit in facete feugiat pertinax, veri habeo at quo. Harum senserit sea ne, platonem sapientem ea vel. Vim admodum feugait
        perfecto ne, graeci audire te mei. Deserunt pericula mel ut, officiis neglegentur ius ea. Rebum eloquentiam contentiones cu sit, cu has possit temporibus, sed quem erat alterum ut. Id sea apeirian molestiae. Ea sed doctus omittam, hendrerit forensibus
        sed ut. Ne mazim deleniti vituperata eam, ex everti pertinacia eum. In erant dignissim vim, id pro quidam dolorum. Cu explicari vituperata cum. Incorrupte definitiones usu ad. Ex has assum sapientem intellegebat, mei mentitum delectus quaestio
        ea, quas augue bonorum an pri. An molestie necessitatibus sea, laboramus consectetuer vis id. Eu ius mutat brute, pri tacimates inimicus ne, delicata vulputate vituperatoribus et mel. Timeam bonorum no his.</p>
    </div>
  </div>
</body>

</html>
-----------------------
div {
  font-family: 'Montserrat', sans-serif;
}

body {
  background-color: rgb(233, 233, 233);
  padding: 0;
  margin: 0;
}

.sitewrapper {
  display: flex;
  justify-content: space-between;
}


/* Sidebar */

.sidebar {
  width: 250px;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  margin-left: 80px;
  margin-right: 80px;
  position: sticky;
  top: 0;
  height: 100%
}

.title-item {
  margin-top: 70px;
  margin-bottom: 60px;
  font-size: xx-large;
  font-weight: 600;
  font-variant: small-caps;
  letter-spacing: 4px;
}

.side-spacer {
  margin-top: 12px;
  margin-bottom: 12px;
}

.side-item {
  margin-top: 12px;
  margin-bottom: 12px;
  font-size: larger;
  font-weight: 500;
  letter-spacing: 1px;
}

.rights {
  margin-top: 80px;
  max-width: 225px;
  line-height: 25px;
  font-size: small;
  color: rgb(110, 110, 110);
}


/* Main Content Area */


/* Header to be used on all pages */

.header {
  margin-top: 80px;
  margin-bottom: 80px;
  border-bottom: 1px solid;
}

.main-container {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  max-height: 100%;
}

.imagecontainer-parent {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: stretch;
}

.imagecontainer {
  max-height: 450px;
  max-width: 450px;
}

img {
  height: 100%;
  width: 100%;
  object-fit: contain;
}
<!DOCTYPE html>
<html lang="en">

<!--- Head --->

<head>
  <link rel="preconnect" href="https://fonts.googleapis.com">
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  <link href="https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap" rel="stylesheet">
  <link rel="stylesheet" href="style.css">
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>J.S. Marino</title>
</head>

<!--- Body --->

<body id="body">
  <div class="sitewrapper">
    <div class="sidebar">
      <div class="title-item">J.S. Marino</div>
      <div class="side-item">Writing</div>
      <div class="side-item">Photography</div>
      <div class="side-item">Eureka</div>
      <div class="side-spacer">&#8203;</div>
      <div class="side-item">About</div>
      <div class="side-item">Contact</div>
      <div class="rights">© 2020 - 2022 Jeremy Marino. All Rights Reserved.</div>
    </div>

    <div class="main-container">
      <div class="header">Test Page</div>
      <div class="imagecontainer-parent">
        <div class="imagecontainer">
          <img src="images/60362401_1407048259444464_8317741293019070464_n.jpg" alt="Blurry monochrome image of lonely workstation">
        </div>
        <div class="imagecontainer">
          <img src="images/2.jpg" alt="An ethereal waterfront">
        </div>
      </div>
      <p>Lorem ipsum dolor sit amet, ea vix dolor dictas mnesarchum. Ad mel omnis debet. Utinam vituperatoribus quo at. Sit te solum oporteat, ad quaeque fierent nec. No minimum probatus qui. Tollit graece verterem mei ut, munere latine no vis, brute dolorem
        ancillae his cu. Nec vero nihil ut, usu vide accommodare no. Ne dicit nominati maiestatis usu, vis id amet definitiones. Cu sed brute scripserit, vidisse dolorem sea te, prima consulatu per ei. Ut quo discere vituperata argumentum, oportere adversarium
        eam ne. Mea munere denique voluptatum ea, et vidit graece inciderint nam. Mea ad audire concludaturque, mel eu aliquam corrumpit. Vim no probo errem fuisset. At primis blandit laboramus pro. Ad velit doming eam, fabulas tibique efficiantur cum
        no, deserunt explicari et eam. Simul homero pri ut. Vis ea tale autem lorem, vim ea regione atomorum constituto. Ei vix sapientem patrioque, mei omnesque pertinacia ad. Id cum error iudico, vis dicta ancillae definiebas et, eos ad euismod omittam.
        No sed meis torquatos, vel in tamquam luptatum, cu nulla mandamus his. Reque accumsan sententiae ius cu, eu nominavi appetere mea. Cu impetus diceret consequat nam, pro cu alterum periculis. Sonet vituperata te vis, ea quo nullam atomorum assueverit.
        Recusabo sententiae at vix. Duo autem simul oporteat ex, putent tritani ne quo. Ei inani commune reformidans eum, sonet putent noster eum ex, eam ne sumo eligendi tacimates. Dictas sanctus similique ad usu. Ea sint vidit tempor cum, mentitum electram
        imperdiet quo an. Enim officiis id mea. Rebum ignota eruditi mea ei. No nisl consequat cum. Mel cu malis etiam splendide, an veniam percipitur nam, dolore feugiat scripserit ex vis. Pro nonumy utroque in. Eos eu timeam mentitum insolens, sit viris
        euripidis dissentiet ad, usu ut alia possim luptatum. Facete aliquip petentium eam ad, ne est ferri clita putent. Vis munere mucius vivendum id. Quot complectitur et duo, te est aeterno fastidii incorrupte. Solum populo vix id, error probatus
        quaerendum mea at, choro invenire maiestatis ex mei. Ea nec graecis inciderint, populo pertinacia assueverit ne mel. Menandri partiendo te per. Cum no putant apeirian percipitur, habeo disputando pro ex. Eam equidem patrioque instructior ei, ea
        epicuri accusamus mel. In quo error oporteat consetetur. Mea te wisi cetero epicuri. Nec ei viris semper splendide. Sumo suscipiantur vim ea, ea sit accumsan tractatos adolescens. Vim ad autem signiferumque conclusionemque, et dico honestatis
        liberavisse his. Iusto melius concludaturque qui ei. His eu brute indoctum reprimique. Summo iudico tacimates eum et, per eu nihil diceret luptatum, mea latine inimicus evertitur ut. At quot phaedrum repudiare sea, mel et probo paulo disputationi,
        tota albucius eam ad. Malis sapientem his ea. Sea quis sonet audiam ut. Mea at paulo aliquid. Per ad veri impedit, harum exerci eligendi eu vim. Exerci graece temporibus ad vim, at quo apeirian patrioque efficiendi. No quo sapientem splendide
        deterruisset, qui quod omittantur ad. Qui an inani dicam fierent, voluptua gubergren in per. Vel ad munere impetus tincidunt, ea lorem prompta denique nam. Eu modus causae appetere his, quis ferri epicuri mei ea, vim ea eros inimicus moderatius.
        Ubique impetus interesset te sea. Ex exerci indoctum cum. Pri phaedrum dissentiunt cu, nonumy rationibus mel an. Mel ridens ornatus delicatissimi et, ignota delenit maiestatis ei vim. Clita alterum maiestatis vel et, nobis noluisse sententiae
        ut nam, no usu alii dolores conclusionemque. At decore option suscipit pro, an qui epicurei disputationi. Sit at viris facilis perpetua, eam nostrud facilisis ei. Te ius purto nihil facilisi, an vis utinam aliquam. Eum ad delenit intellegam, ius
        alii meis tacimates in. In eum amet fabellas. Ignota habemus no pro, ad purto labitur mea, te quaeque periculis eum. In eam veniam accumsan evertitur. At cum semper euismod, has et offendit sensibus, no summo tincidunt assueverit pro. Ut munere
        tritani democritum nec, amet natum salutatus eu sit. Ne usu modus omnium aliquam. Erant consequuntur no quo, nec in nihil nostro vituperata. Rationibus sadipscing signiferumque ne duo, te vis postulant consequat interpretaris, nominavi salutandi
        nam cu. No vim zril ignota, nam expetendis intellegam cu. Cum case malorum voluptatum an, te ornatus fabellas complectitur his. Vim lorem ponderum ex, affert albucius ius no. Nemore ancillae quo et. Et natum everti accusamus eam, mea fugit populo
        appetere ad. Eu ferri delicata eam, ea liber menandri antiopam mei, an singulis salutatus eam. Pro an errem simul, usu id elit tollit abhorreant. Veniam populo per et, sea in meis quando. Has suavitate maluisset ea. Modo case te vim, sit in facete
        feugiat pertinax, veri habeo at quo. Harum senserit sea ne, platonem sapientem ea vel. Vim admodum feugait perfecto ne, graeci audire te mei. Deserunt pericula mel ut, officiis neglegentur ius ea. Rebum eloquentiam contentiones cu sit, cu has
        possit temporibus, sed quem erat alterum ut. Id sea apeirian molestiae. Ea sed doctus omittam, hendrerit forensibus sed ut. Ne mazim deleniti vituperata eam, ex everti pertinacia eum. In erant dignissim vim, id pro quidam dolorum. Cu explicari
        vituperata cum. Incorrupte definitiones usu ad. Ex has assum sapientem intellegebat, mei mentitum delectus quaestio ea, quas augue bonorum an pri. An molestie necessitatibus sea, laboramus consectetuer vis id. Eu ius mutat brute, pri tacimates
        inimicus ne, delicata vulputate vituperatoribus et mel. Timeam bonorum no his.Lorem ipsum dolor sit amet, ea vix dolor dictas mnesarchum. Ad mel omnis debet. Utinam vituperatoribus quo at. Sit te solum oporteat, ad quaeque fierent nec. No minimum
        probatus qui. Tollit graece verterem mei ut, munere latine no vis, brute dolorem ancillae his cu. Nec vero nihil ut, usu vide accommodare no. Ne dicit nominati maiestatis usu, vis id amet definitiones. Cu sed brute scripserit, vidisse dolorem
        sea te, prima consulatu per ei. Ut quo discere vituperata argumentum, oportere adversarium eam ne. Mea munere denique voluptatum ea, et vidit graece inciderint nam. Mea ad audire concludaturque, mel eu aliquam corrumpit. Vim no probo errem fuisset.
        At primis blandit laboramus pro. Ad velit doming eam, fabulas tibique efficiantur cum no, deserunt explicari et eam. Simul homero pri ut. Vis ea tale autem lorem, vim ea regione atomorum constituto. Ei vix sapientem patrioque, mei omnesque pertinacia
        ad. Id cum error iudico, vis dicta ancillae definiebas et, eos ad euismod omittam. No sed meis torquatos, vel in tamquam luptatum, cu nulla mandamus his. Reque accumsan sententiae ius cu, eu nominavi appetere mea. Cu impetus diceret consequat
        nam, pro cu alterum periculis. Sonet vituperata te vis, ea quo nullam atomorum assueverit. Recusabo sententiae at vix. Duo autem simul oporteat ex, putent tritani ne quo. Ei inani commune reformidans eum, sonet putent noster eum ex, eam ne sumo
        eligendi tacimates. Dictas sanctus similique ad usu. Ea sint vidit tempor cum, mentitum electram imperdiet quo an. Enim officiis id mea. Rebum ignota eruditi mea ei. No nisl consequat cum. Mel cu malis etiam splendide, an veniam percipitur nam,
        dolore feugiat scripserit ex vis. Pro nonumy utroque in. Eos eu timeam mentitum insolens, sit viris euripidis dissentiet ad, usu ut alia possim luptatum. Facete aliquip petentium eam ad, ne est ferri clita putent. Vis munere mucius vivendum id.
        Quot complectitur et duo, te est aeterno fastidii incorrupte. Solum populo vix id, error probatus quaerendum mea at, choro invenire maiestatis ex mei. Ea nec graecis inciderint, populo pertinacia assueverit ne mel. Menandri partiendo te per. Cum
        no putant apeirian percipitur, habeo disputando pro ex. Eam equidem patrioque instructior ei, ea epicuri accusamus mel. In quo error oporteat consetetur. Mea te wisi cetero epicuri. Nec ei viris semper splendide. Sumo suscipiantur vim ea, ea sit
        accumsan tractatos adolescens. Vim ad autem signiferumque conclusionemque, et dico honestatis liberavisse his. Iusto melius concludaturque qui ei. His eu brute indoctum reprimique. Summo iudico tacimates eum et, per eu nihil diceret luptatum,
        mea latine inimicus evertitur ut. At quot phaedrum repudiare sea, mel et probo paulo disputationi, tota albucius eam ad. Malis sapientem his ea. Sea quis sonet audiam ut. Mea at paulo aliquid. Per ad veri impedit, harum exerci eligendi eu vim.
        Exerci graece temporibus ad vim, at quo apeirian patrioque efficiendi. No quo sapientem splendide deterruisset, qui quod omittantur ad. Qui an inani dicam fierent, voluptua gubergren in per. Vel ad munere impetus tincidunt, ea lorem prompta denique
        nam. Eu modus causae appetere his, quis ferri epicuri mei ea, vim ea eros inimicus moderatius. Ubique impetus interesset te sea. Ex exerci indoctum cum. Pri phaedrum dissentiunt cu, nonumy rationibus mel an. Mel ridens ornatus delicatissimi et,
        ignota delenit maiestatis ei vim. Clita alterum maiestatis vel et, nobis noluisse sententiae ut nam, no usu alii dolores conclusionemque. At decore option suscipit pro, an qui epicurei disputationi. Sit at viris facilis perpetua, eam nostrud facilisis
        ei. Te ius purto nihil facilisi, an vis utinam aliquam. Eum ad delenit intellegam, ius alii meis tacimates in. In eum amet fabellas. Ignota habemus no pro, ad purto labitur mea, te quaeque periculis eum. In eam veniam accumsan evertitur. At cum
        semper euismod, has et offendit sensibus, no summo tincidunt assueverit pro. Ut munere tritani democritum nec, amet natum salutatus eu sit. Ne usu modus omnium aliquam. Erant consequuntur no quo, nec in nihil nostro vituperata. Rationibus sadipscing
        signiferumque ne duo, te vis postulant consequat interpretaris, nominavi salutandi nam cu. No vim zril ignota, nam expetendis intellegam cu. Cum case malorum voluptatum an, te ornatus fabellas complectitur his. Vim lorem ponderum ex, affert albucius
        ius no. Nemore ancillae quo et. Et natum everti accusamus eam, mea fugit populo appetere ad. Eu ferri delicata eam, ea liber menandri antiopam mei, an singulis salutatus eam. Pro an errem simul, usu id elit tollit abhorreant. Veniam populo per
        et, sea in meis quando. Has suavitate maluisset ea. Modo case te vim, sit in facete feugiat pertinax, veri habeo at quo. Harum senserit sea ne, platonem sapientem ea vel. Vim admodum feugait perfecto ne, graeci audire te mei. Deserunt pericula
        mel ut, officiis neglegentur ius ea. Rebum eloquentiam contentiones cu sit, cu has possit temporibus, sed quem erat alterum ut. Id sea apeirian molestiae. Ea sed doctus omittam, hendrerit forensibus sed ut. Ne mazim deleniti vituperata eam, ex
        everti pertinacia eum. In erant dignissim vim, id pro quidam dolorum. Cu explicari vituperata cum. Incorrupte definitiones usu ad. Ex has assum sapientem intellegebat, mei mentitum delectus quaestio ea, quas augue bonorum an pri. An molestie necessitatibus
        sea, laboramus consectetuer vis id. Eu ius mutat brute, pri tacimates inimicus ne, delicata vulputate vituperatoribus et mel. Timeam bonorum no his.Lorem ipsum dolor sit amet, ea vix dolor dictas mnesarchum. Ad mel omnis debet. Utinam vituperatoribus
        quo at. Sit te solum oporteat, ad quaeque fierent nec. No minimum probatus qui. Tollit graece verterem mei ut, munere latine no vis, brute dolorem ancillae his cu. Nec vero nihil ut, usu vide accommodare no. Ne dicit nominati maiestatis usu, vis
        id amet definitiones. Cu sed brute scripserit, vidisse dolorem sea te, prima consulatu per ei. Ut quo discere vituperata argumentum, oportere adversarium eam ne. Mea munere denique voluptatum ea, et vidit graece inciderint nam. Mea ad audire concludaturque,
        mel eu aliquam corrumpit. Vim no probo errem fuisset. At primis blandit laboramus pro. Ad velit doming eam, fabulas tibique efficiantur cum no, deserunt explicari et eam. Simul homero pri ut. Vis ea tale autem lorem, vim ea regione atomorum constituto.
        Ei vix sapientem patrioque, mei omnesque pertinacia ad. Id cum error iudico, vis dicta ancillae definiebas et, eos ad euismod omittam. No sed meis torquatos, vel in tamquam luptatum, cu nulla mandamus his. Reque accumsan sententiae ius cu, eu
        nominavi appetere mea. Cu impetus diceret consequat nam, pro cu alterum periculis. Sonet vituperata te vis, ea quo nullam atomorum assueverit. Recusabo sententiae at vix. Duo autem simul oporteat ex, putent tritani ne quo. Ei inani commune reformidans
        eum, sonet putent noster eum ex, eam ne sumo eligendi tacimates. Dictas sanctus similique ad usu. Ea sint vidit tempor cum, mentitum electram imperdiet quo an. Enim officiis id mea. Rebum ignota eruditi mea ei. No nisl consequat cum. Mel cu malis
        etiam splendide, an veniam percipitur nam, dolore feugiat scripserit ex vis. Pro nonumy utroque in. Eos eu timeam mentitum insolens, sit viris euripidis dissentiet ad, usu ut alia possim luptatum. Facete aliquip petentium eam ad, ne est ferri
        clita putent. Vis munere mucius vivendum id. Quot complectitur et duo, te est aeterno fastidii incorrupte. Solum populo vix id, error probatus quaerendum mea at, choro invenire maiestatis ex mei. Ea nec graecis inciderint, populo pertinacia assueverit
        ne mel. Menandri partiendo te per. Cum no putant apeirian percipitur, habeo disputando pro ex. Eam equidem patrioque instructior ei, ea epicuri accusamus mel. In quo error oporteat consetetur. Mea te wisi cetero epicuri. Nec ei viris semper splendide.
        Sumo suscipiantur vim ea, ea sit accumsan tractatos adolescens. Vim ad autem signiferumque conclusionemque, et dico honestatis liberavisse his. Iusto melius concludaturque qui ei. His eu brute indoctum reprimique. Summo iudico tacimates eum et,
        per eu nihil diceret luptatum, mea latine inimicus evertitur ut. At quot phaedrum repudiare sea, mel et probo paulo disputationi, tota albucius eam ad. Malis sapientem his ea. Sea quis sonet audiam ut. Mea at paulo aliquid. Per ad veri impedit,
        harum exerci eligendi eu vim. Exerci graece temporibus ad vim, at quo apeirian patrioque efficiendi. No quo sapientem splendide deterruisset, qui quod omittantur ad. Qui an inani dicam fierent, voluptua gubergren in per. Vel ad munere impetus
        tincidunt, ea lorem prompta denique nam. Eu modus causae appetere his, quis ferri epicuri mei ea, vim ea eros inimicus moderatius. Ubique impetus interesset te sea. Ex exerci indoctum cum. Pri phaedrum dissentiunt cu, nonumy rationibus mel an.
        Mel ridens ornatus delicatissimi et, ignota delenit maiestatis ei vim. Clita alterum maiestatis vel et, nobis noluisse sententiae ut nam, no usu alii dolores conclusionemque. At decore option suscipit pro, an qui epicurei disputationi. Sit at
        viris facilis perpetua, eam nostrud facilisis ei. Te ius purto nihil facilisi, an vis utinam aliquam. Eum ad delenit intellegam, ius alii meis tacimates in. In eum amet fabellas. Ignota habemus no pro, ad purto labitur mea, te quaeque periculis
        eum. In eam veniam accumsan evertitur. At cum semper euismod, has et offendit sensibus, no summo tincidunt assueverit pro. Ut munere tritani democritum nec, amet natum salutatus eu sit. Ne usu modus omnium aliquam. Erant consequuntur no quo, nec
        in nihil nostro vituperata. Rationibus sadipscing signiferumque ne duo, te vis postulant consequat interpretaris, nominavi salutandi nam cu. No vim zril ignota, nam expetendis intellegam cu. Cum case malorum voluptatum an, te ornatus fabellas
        complectitur his. Vim lorem ponderum ex, affert albucius ius no. Nemore ancillae quo et. Et natum everti accusamus eam, mea fugit populo appetere ad. Eu ferri delicata eam, ea liber menandri antiopam mei, an singulis salutatus eam. Pro an errem
        simul, usu id elit tollit abhorreant. Veniam populo per et, sea in meis quando. Has suavitate maluisset ea. Modo case te vim, sit in facete feugiat pertinax, veri habeo at quo. Harum senserit sea ne, platonem sapientem ea vel. Vim admodum feugait
        perfecto ne, graeci audire te mei. Deserunt pericula mel ut, officiis neglegentur ius ea. Rebum eloquentiam contentiones cu sit, cu has possit temporibus, sed quem erat alterum ut. Id sea apeirian molestiae. Ea sed doctus omittam, hendrerit forensibus
        sed ut. Ne mazim deleniti vituperata eam, ex everti pertinacia eum. In erant dignissim vim, id pro quidam dolorum. Cu explicari vituperata cum. Incorrupte definitiones usu ad. Ex has assum sapientem intellegebat, mei mentitum delectus quaestio
        ea, quas augue bonorum an pri. An molestie necessitatibus sea, laboramus consectetuer vis id. Eu ius mutat brute, pri tacimates inimicus ne, delicata vulputate vituperatoribus et mel. Timeam bonorum no his.</p>
    </div>
  </div>
</body>

</html>
-----------------------
.sitewrapper {
  display: flex;
  justify-content: space-between;
}


/* Sidebar */

.sidebar-wrapper{
  position: relative;
  width: 20rem;
  height: 100vh;
  margin-left: 80px;
  margin-right: 80px;
}

.sidebar {
  position: fixed;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}
.rights {
   margin-top: 80px;
   max-width: 225px;
   line-height: 25px;
   font-size: small;
   color: rgb(110, 110, 110);
}


/* Main Content Area */


.main-container {
  width: fit-content // or % value or -webkit-fill-available
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
<!--- Body --->

<body id="body">
  <div class="sitewrapper">
   <div class="sidebar-wrapper"> <!--added by me -->
    <div class="sidebar">
      <div class="title-item">J.S. Marino</div>
      <div class="side-item">Writing</div>
      <div class="side-item">Photography</div>
      <div class="side-item">Eureka</div>
      <div class="side-spacer">&#8203;</div>
      <div class="side-item">About</div>
      <div class="side-item">Contact</div>
      <div class="rights">© 2020 - 2022 Jeremy Marino. All Rights Reserved.</div>
    </div>
    </div>
    <div class="main-container">
      <div class="header">Test Page</div>
      <div class="imagecontainer-parent">
        <div class="imagecontainer">
          <img src="images/60362401_1407048259444464_8317741293019070464_n.jpg" alt="Blurry monochrome image of lonely workstation">
        </div>
        <div class="imagecontainer">
          <img src="images/2.jpg" alt="An ethereal waterfront">
        </div>
      </div>
      <p>Lorem ipsum dolor sit amet, ea vix dolor dictas mnesarchum. Ad mel omnis debet. Utinam vituperatoribus quo at. Sit te solum oporteat, ad quaeque fierent nec. No minimum probatus qui. Tollit graece verterem mei ut, munere latine no vis, brute dolorem
        ancillae his cu. Nec vero nihil ut, usu vide accommodare no. Ne dicit nominati maiestatis usu, vis id amet definitiones. Cu sed brute scripserit, vidisse dolorem sea te, prima consulatu per ei. Ut quo discere vituperata argumentum, oportere adversarium
        eam ne. Mea munere denique voluptatum ea, et vidit graece inciderint nam. Mea ad audire concludaturque, mel eu aliquam corrumpit. Vim no probo errem fuisset. At primis blandit laboramus pro. Ad velit doming eam, fabulas tibique efficiantur cum
        no, deserunt explicari et eam. Simul homero pri ut. Vis ea tale autem lorem, vim ea regione atomorum constituto. Ei vix sapientem patrioque, mei omnesque pertinacia ad. Id cum error iudico, vis dicta ancillae definiebas et, eos ad euismod omittam.
        No sed meis torquatos, vel in tamquam luptatum, cu nulla mandamus his. Reque accumsan sententiae ius cu, eu nominavi appetere mea. Cu impetus diceret consequat nam, pro cu alterum periculis. Sonet vituperata te vis, ea quo nullam atomorum assueverit.
        Recusabo sententiae at vix. Duo autem simul oporteat ex, putent tritani ne quo. Ei inani commune reformidans eum, sonet putent noster eum ex, eam ne sumo eligendi tacimates. Dictas sanctus similique ad usu. Ea sint vidit tempor cum, mentitum electram
        imperdiet quo an. Enim officiis id mea. Rebum ignota eruditi mea ei. No nisl consequat cum. Mel cu malis etiam splendide, an veniam percipitur nam, dolore feugiat scripserit ex vis. Pro nonumy utroque in. Eos eu timeam mentitum insolens, sit viris
        euripidis dissentiet ad, usu ut alia possim luptatum. Facete aliquip petentium eam ad, ne est ferri clita putent. Vis munere mucius vivendum id. Quot complectitur et duo, te est aeterno fastidii incorrupte. Solum populo vix id, error probatus
        quaerendum mea at, choro invenire maiestatis ex mei. Ea nec graecis inciderint, populo pertinacia assueverit ne mel. Menandri partiendo te per. Cum no putant apeirian percipitur, habeo disputando pro ex. Eam equidem patrioque instructior ei, ea
        epicuri accusamus mel. In quo error oporteat consetetur. Mea te wisi cetero epicuri. Nec ei viris semper splendide. Sumo suscipiantur vim ea, ea sit accumsan tractatos adolescens. Vim ad autem signiferumque conclusionemque, et dico honestatis
        liberavisse his. Iusto melius concludaturque qui ei. His eu brute indoctum reprimique. Summo iudico tacimates eum et, per eu nihil diceret luptatum, mea latine inimicus evertitur ut. At quot phaedrum repudiare sea, mel et probo paulo disputationi,
        tota albucius eam ad. Malis sapientem his ea. Sea quis sonet audiam ut. Mea at paulo aliquid. Per ad veri impedit, harum exerci eligendi eu vim. Exerci graece temporibus ad vim, at quo apeirian patrioque efficiendi. No quo sapientem splendide
        deterruisset, qui quod omittantur ad. Qui an inani dicam fierent, voluptua gubergren in per. Vel ad munere impetus tincidunt, ea lorem prompta denique nam. Eu modus causae appetere his, quis ferri epicuri mei ea, vim ea eros inimicus moderatius.
        Ubique impetus interesset te sea. Ex exerci indoctum cum. Pri phaedrum dissentiunt cu, nonumy rationibus mel an. Mel ridens ornatus delicatissimi et, ignota delenit maiestatis ei vim. Clita alterum maiestatis vel et, nobis noluisse sententiae
        ut nam, no usu alii dolores conclusionemque. At decore option suscipit pro, an qui epicurei disputationi. Sit at viris facilis perpetua, eam nostrud facilisis ei. Te ius purto nihil facilisi, an vis utinam aliquam. Eum ad delenit intellegam, ius
        alii meis tacimates in. In eum amet fabellas. Ignota habemus no pro, ad purto labitur mea, te quaeque periculis eum. In eam veniam accumsan evertitur. At cum semper euismod, has et offendit sensibus, no summo tincidunt assueverit pro. Ut munere
        tritani democritum nec, amet natum salutatus eu sit. Ne usu modus omnium aliquam. Erant consequuntur no quo, nec in nihil nostro vituperata. Rationibus sadipscing signiferumque ne duo, te vis postulant consequat interpretaris, nominavi salutandi
        nam cu. No vim zril ignota, nam expetendis intellegam cu. Cum case malorum voluptatum an, te ornatus fabellas complectitur his. Vim lorem ponderum ex, affert albucius ius no. Nemore ancillae quo et. Et natum everti accusamus eam, mea fugit populo
        appetere ad. Eu ferri delicata eam, ea liber menandri antiopam mei, an singulis salutatus eam. Pro an errem simul, usu id elit tollit abhorreant. Veniam populo per et, sea in meis quando. Has suavitate maluisset ea. Modo case te vim, sit in facete
        feugiat pertinax, veri habeo at quo. Harum senserit sea ne, platonem sapientem ea vel. Vim admodum feugait perfecto ne, graeci audire te mei. Deserunt pericula mel ut, officiis neglegentur ius ea. Rebum eloquentiam contentiones cu sit, cu has
        possit temporibus, sed quem erat alterum ut. Id sea apeirian molestiae. Ea sed doctus omittam, hendrerit forensibus sed ut. Ne mazim deleniti vituperata eam, ex everti pertinacia eum. In erant dignissim vim, id pro quidam dolorum. Cu explicari
        vituperata cum. Incorrupte definitiones usu ad. Ex has assum sapientem intellegebat, mei mentitum delectus quaestio ea, quas augue bonorum an pri. An molestie necessitatibus sea, laboramus consectetuer vis id. Eu ius mutat brute, pri tacimates
        inimicus ne, delicata vulputate vituperatoribus et mel. Timeam bonorum no his.Lorem ipsum dolor sit amet, ea vix dolor dictas mnesarchum. Ad mel omnis debet. Utinam vituperatoribus quo at. Sit te solum oporteat, ad quaeque fierent nec. No minimum
        probatus qui. Tollit graece verterem mei ut, munere latine no vis, brute dolorem ancillae his cu. Nec vero nihil ut, usu vide accommodare no. Ne dicit nominati maiestatis usu, vis id amet definitiones. Cu sed brute scripserit, vidisse dolorem
        sea te, prima consulatu per ei. Ut quo discere vituperata argumentum, oportere adversarium eam ne. Mea munere denique voluptatum ea, et vidit graece inciderint nam. Mea ad audire concludaturque, mel eu aliquam corrumpit. Vim no probo errem fuisset.
        At primis blandit laboramus pro. Ad velit doming eam, fabulas tibique efficiantur cum no, deserunt explicari et eam. Simul homero pri ut. Vis ea tale autem lorem, vim ea regione atomorum constituto. Ei vix sapientem patrioque, mei omnesque pertinacia
        ad. Id cum error iudico, vis dicta ancillae definiebas et, eos ad euismod omittam. No sed meis torquatos, vel in tamquam luptatum, cu nulla mandamus his. Reque accumsan sententiae ius cu, eu nominavi appetere mea. Cu impetus diceret consequat
        nam, pro cu alterum periculis. Sonet vituperata te vis, ea quo nullam atomorum assueverit. Recusabo sententiae at vix. Duo autem simul oporteat ex, putent tritani ne quo. Ei inani commune reformidans eum, sonet putent noster eum ex, eam ne sumo
        eligendi tacimates. Dictas sanctus similique ad usu. Ea sint vidit tempor cum, mentitum electram imperdiet quo an. Enim officiis id mea. Rebum ignota eruditi mea ei. No nisl consequat cum. Mel cu malis etiam splendide, an veniam percipitur nam,
        dolore feugiat scripserit ex vis. Pro nonumy utroque in. Eos eu timeam mentitum insolens, sit viris euripidis dissentiet ad, usu ut alia possim luptatum. Facete aliquip petentium eam ad, ne est ferri clita putent. Vis munere mucius vivendum id.
        Quot complectitur et duo, te est aeterno fastidii incorrupte. Solum populo vix id, error probatus quaerendum mea at, choro invenire maiestatis ex mei. Ea nec graecis inciderint, populo pertinacia assueverit ne mel. Menandri partiendo te per. Cum
        no putant apeirian percipitur, habeo disputando pro ex. Eam equidem patrioque instructior ei, ea epicuri accusamus mel. In quo error oporteat consetetur. Mea te wisi cetero epicuri. Nec ei viris semper splendide. Sumo suscipiantur vim ea, ea sit
        accumsan tractatos adolescens. Vim ad autem signiferumque conclusionemque, et dico honestatis liberavisse his. Iusto melius concludaturque qui ei. His eu brute indoctum reprimique. Summo iudico tacimates eum et, per eu nihil diceret luptatum,
        mea latine inimicus evertitur ut. At quot phaedrum repudiare sea, mel et probo paulo disputationi, tota albucius eam ad. Malis sapientem his ea. Sea quis sonet audiam ut. Mea at paulo aliquid. Per ad veri impedit, harum exerci eligendi eu vim.
        Exerci graece temporibus ad vim, at quo apeirian patrioque efficiendi. No quo sapientem splendide deterruisset, qui quod omittantur ad. Qui an inani dicam fierent, voluptua gubergren in per. Vel ad munere impetus tincidunt, ea lorem prompta denique
        nam. Eu modus causae appetere his, quis ferri epicuri mei ea, vim ea eros inimicus moderatius. Ubique impetus interesset te sea. Ex exerci indoctum cum. Pri phaedrum dissentiunt cu, nonumy rationibus mel an. Mel ridens ornatus delicatissimi et,
        ignota delenit maiestatis ei vim. Clita alterum maiestatis vel et, nobis noluisse sententiae ut nam, no usu alii dolores conclusionemque. At decore option suscipit pro, an qui epicurei disputationi. Sit at viris facilis perpetua, eam nostrud facilisis
        ei. Te ius purto nihil facilisi, an vis utinam aliquam. Eum ad delenit intellegam, ius alii meis tacimates in. In eum amet fabellas. Ignota habemus no pro, ad purto labitur mea, te quaeque periculis eum. In eam veniam accumsan evertitur. At cum
        semper euismod, has et offendit sensibus, no summo tincidunt assueverit pro. Ut munere tritani democritum nec, amet natum salutatus eu sit. Ne usu modus omnium aliquam. Erant consequuntur no quo, nec in nihil nostro vituperata. Rationibus sadipscing
        signiferumque ne duo, te vis postulant consequat interpretaris, nominavi salutandi nam cu. No vim zril ignota, nam expetendis intellegam cu. Cum case malorum voluptatum an, te ornatus fabellas complectitur his. Vim lorem ponderum ex, affert albucius
        ius no. Nemore ancillae quo et. Et natum everti accusamus eam, mea fugit populo appetere ad. Eu ferri delicata eam, ea liber menandri antiopam mei, an singulis salutatus eam. Pro an errem simul, usu id elit tollit abhorreant. Veniam populo per
        et, sea in meis quando. Has suavitate maluisset ea. Modo case te vim, sit in facete feugiat pertinax, veri habeo at quo. Harum senserit sea ne, platonem sapientem ea vel. Vim admodum feugait perfecto ne, graeci audire te mei. Deserunt pericula
        mel ut, officiis neglegentur ius ea. Rebum eloquentiam contentiones cu sit, cu has possit temporibus, sed quem erat alterum ut. Id sea apeirian molestiae. Ea sed doctus omittam, hendrerit forensibus sed ut. Ne mazim deleniti vituperata eam, ex
        everti pertinacia eum. In erant dignissim vim, id pro quidam dolorum. Cu explicari vituperata cum. Incorrupte definitiones usu ad. Ex has assum sapientem intellegebat, mei mentitum delectus quaestio ea, quas augue bonorum an pri. An molestie necessitatibus
        sea, laboramus consectetuer vis id. Eu ius mutat brute, pri tacimates inimicus ne, delicata vulputate vituperatoribus et mel. Timeam bonorum no his.Lorem ipsum dolor sit amet, ea vix dolor dictas mnesarchum. Ad mel omnis debet. Utinam vituperatoribus
        quo at. Sit te solum oporteat, ad quaeque fierent nec. No minimum probatus qui. Tollit graece verterem mei ut, munere latine no vis, brute dolorem ancillae his cu. Nec vero nihil ut, usu vide accommodare no. Ne dicit nominati maiestatis usu, vis
        id amet definitiones. Cu sed brute scripserit, vidisse dolorem sea te, prima consulatu per ei. Ut quo discere vituperata argumentum, oportere adversarium eam ne. Mea munere denique voluptatum ea, et vidit graece inciderint nam. Mea ad audire concludaturque,
        mel eu aliquam corrumpit. Vim no probo errem fuisset. At primis blandit laboramus pro. Ad velit doming eam, fabulas tibique efficiantur cum no, deserunt explicari et eam. Simul homero pri ut. Vis ea tale autem lorem, vim ea regione atomorum constituto.
        Ei vix sapientem patrioque, mei omnesque pertinacia ad. Id cum error iudico, vis dicta ancillae definiebas et, eos ad euismod omittam. No sed meis torquatos, vel in tamquam luptatum, cu nulla mandamus his. Reque accumsan sententiae ius cu, eu
        nominavi appetere mea. Cu impetus diceret consequat nam, pro cu alterum periculis. Sonet vituperata te vis, ea quo nullam atomorum assueverit. Recusabo sententiae at vix. Duo autem simul oporteat ex, putent tritani ne quo. Ei inani commune reformidans
        eum, sonet putent noster eum ex, eam ne sumo eligendi tacimates. Dictas sanctus similique ad usu. Ea sint vidit tempor cum, mentitum electram imperdiet quo an. Enim officiis id mea. Rebum ignota eruditi mea ei. No nisl consequat cum. Mel cu malis
        etiam splendide, an veniam percipitur nam, dolore feugiat scripserit ex vis. Pro nonumy utroque in. Eos eu timeam mentitum insolens, sit viris euripidis dissentiet ad, usu ut alia possim luptatum. Facete aliquip petentium eam ad, ne est ferri
        clita putent. Vis munere mucius vivendum id. Quot complectitur et duo, te est aeterno fastidii incorrupte. Solum populo vix id, error probatus quaerendum mea at, choro invenire maiestatis ex mei. Ea nec graecis inciderint, populo pertinacia assueverit
        ne mel. Menandri partiendo te per. Cum no putant apeirian percipitur, habeo disputando pro ex. Eam equidem patrioque instructior ei, ea epicuri accusamus mel. In quo error oporteat consetetur. Mea te wisi cetero epicuri. Nec ei viris semper splendide.
        Sumo suscipiantur vim ea, ea sit accumsan tractatos adolescens. Vim ad autem signiferumque conclusionemque, et dico honestatis liberavisse his. Iusto melius concludaturque qui ei. His eu brute indoctum reprimique. Summo iudico tacimates eum et,
        per eu nihil diceret luptatum, mea latine inimicus evertitur ut. At quot phaedrum repudiare sea, mel et probo paulo disputationi, tota albucius eam ad. Malis sapientem his ea. Sea quis sonet audiam ut. Mea at paulo aliquid. Per ad veri impedit,
        harum exerci eligendi eu vim. Exerci graece temporibus ad vim, at quo apeirian patrioque efficiendi. No quo sapientem splendide deterruisset, qui quod omittantur ad. Qui an inani dicam fierent, voluptua gubergren in per. Vel ad munere impetus
        tincidunt, ea lorem prompta denique nam. Eu modus causae appetere his, quis ferri epicuri mei ea, vim ea eros inimicus moderatius. Ubique impetus interesset te sea. Ex exerci indoctum cum. Pri phaedrum dissentiunt cu, nonumy rationibus mel an.
        Mel ridens ornatus delicatissimi et, ignota delenit maiestatis ei vim. Clita alterum maiestatis vel et, nobis noluisse sententiae ut nam, no usu alii dolores conclusionemque. At decore option suscipit pro, an qui epicurei disputationi. Sit at
        viris facilis perpetua, eam nostrud facilisis ei. Te ius purto nihil facilisi, an vis utinam aliquam. Eum ad delenit intellegam, ius alii meis tacimates in. In eum amet fabellas. Ignota habemus no pro, ad purto labitur mea, te quaeque periculis
        eum. In eam veniam accumsan evertitur. At cum semper euismod, has et offendit sensibus, no summo tincidunt assueverit pro. Ut munere tritani democritum nec, amet natum salutatus eu sit. Ne usu modus omnium aliquam. Erant consequuntur no quo, nec
        in nihil nostro vituperata. Rationibus sadipscing signiferumque ne duo, te vis postulant consequat interpretaris, nominavi salutandi nam cu. No vim zril ignota, nam expetendis intellegam cu. Cum case malorum voluptatum an, te ornatus fabellas
        complectitur his. Vim lorem ponderum ex, affert albucius ius no. Nemore ancillae quo et. Et natum everti accusamus eam, mea fugit populo appetere ad. Eu ferri delicata eam, ea liber menandri antiopam mei, an singulis salutatus eam. Pro an errem
        simul, usu id elit tollit abhorreant. Veniam populo per et, sea in meis quando. Has suavitate maluisset ea. Modo case te vim, sit in facete feugiat pertinax, veri habeo at quo. Harum senserit sea ne, platonem sapientem ea vel. Vim admodum feugait
        perfecto ne, graeci audire te mei. Deserunt pericula mel ut, officiis neglegentur ius ea. Rebum eloquentiam contentiones cu sit, cu has possit temporibus, sed quem erat alterum ut. Id sea apeirian molestiae. Ea sed doctus omittam, hendrerit forensibus
        sed ut. Ne mazim deleniti vituperata eam, ex everti pertinacia eum. In erant dignissim vim, id pro quidam dolorum. Cu explicari vituperata cum. Incorrupte definitiones usu ad. Ex has assum sapientem intellegebat, mei mentitum delectus quaestio
        ea, quas augue bonorum an pri. An molestie necessitatibus sea, laboramus consectetuer vis id. Eu ius mutat brute, pri tacimates inimicus ne, delicata vulputate vituperatoribus et mel. Timeam bonorum no his.</p>
    </div>
  </div>
</body>

</html>
-----------------------
.sitewrapper {
  display: flex;
  justify-content: space-between;
}


/* Sidebar */

.sidebar-wrapper{
  position: relative;
  width: 20rem;
  height: 100vh;
  margin-left: 80px;
  margin-right: 80px;
}

.sidebar {
  position: fixed;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}
.rights {
   margin-top: 80px;
   max-width: 225px;
   line-height: 25px;
   font-size: small;
   color: rgb(110, 110, 110);
}


/* Main Content Area */


.main-container {
  width: fit-content // or % value or -webkit-fill-available
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
<!--- Body --->

<body id="body">
  <div class="sitewrapper">
   <div class="sidebar-wrapper"> <!--added by me -->
    <div class="sidebar">
      <div class="title-item">J.S. Marino</div>
      <div class="side-item">Writing</div>
      <div class="side-item">Photography</div>
      <div class="side-item">Eureka</div>
      <div class="side-spacer">&#8203;</div>
      <div class="side-item">About</div>
      <div class="side-item">Contact</div>
      <div class="rights">© 2020 - 2022 Jeremy Marino. All Rights Reserved.</div>
    </div>
    </div>
    <div class="main-container">
      <div class="header">Test Page</div>
      <div class="imagecontainer-parent">
        <div class="imagecontainer">
          <img src="images/60362401_1407048259444464_8317741293019070464_n.jpg" alt="Blurry monochrome image of lonely workstation">
        </div>
        <div class="imagecontainer">
          <img src="images/2.jpg" alt="An ethereal waterfront">
        </div>
      </div>
      <p>Lorem ipsum dolor sit amet, ea vix dolor dictas mnesarchum. Ad mel omnis debet. Utinam vituperatoribus quo at. Sit te solum oporteat, ad quaeque fierent nec. No minimum probatus qui. Tollit graece verterem mei ut, munere latine no vis, brute dolorem
        ancillae his cu. Nec vero nihil ut, usu vide accommodare no. Ne dicit nominati maiestatis usu, vis id amet definitiones. Cu sed brute scripserit, vidisse dolorem sea te, prima consulatu per ei. Ut quo discere vituperata argumentum, oportere adversarium
        eam ne. Mea munere denique voluptatum ea, et vidit graece inciderint nam. Mea ad audire concludaturque, mel eu aliquam corrumpit. Vim no probo errem fuisset. At primis blandit laboramus pro. Ad velit doming eam, fabulas tibique efficiantur cum
        no, deserunt explicari et eam. Simul homero pri ut. Vis ea tale autem lorem, vim ea regione atomorum constituto. Ei vix sapientem patrioque, mei omnesque pertinacia ad. Id cum error iudico, vis dicta ancillae definiebas et, eos ad euismod omittam.
        No sed meis torquatos, vel in tamquam luptatum, cu nulla mandamus his. Reque accumsan sententiae ius cu, eu nominavi appetere mea. Cu impetus diceret consequat nam, pro cu alterum periculis. Sonet vituperata te vis, ea quo nullam atomorum assueverit.
        Recusabo sententiae at vix. Duo autem simul oporteat ex, putent tritani ne quo. Ei inani commune reformidans eum, sonet putent noster eum ex, eam ne sumo eligendi tacimates. Dictas sanctus similique ad usu. Ea sint vidit tempor cum, mentitum electram
        imperdiet quo an. Enim officiis id mea. Rebum ignota eruditi mea ei. No nisl consequat cum. Mel cu malis etiam splendide, an veniam percipitur nam, dolore feugiat scripserit ex vis. Pro nonumy utroque in. Eos eu timeam mentitum insolens, sit viris
        euripidis dissentiet ad, usu ut alia possim luptatum. Facete aliquip petentium eam ad, ne est ferri clita putent. Vis munere mucius vivendum id. Quot complectitur et duo, te est aeterno fastidii incorrupte. Solum populo vix id, error probatus
        quaerendum mea at, choro invenire maiestatis ex mei. Ea nec graecis inciderint, populo pertinacia assueverit ne mel. Menandri partiendo te per. Cum no putant apeirian percipitur, habeo disputando pro ex. Eam equidem patrioque instructior ei, ea
        epicuri accusamus mel. In quo error oporteat consetetur. Mea te wisi cetero epicuri. Nec ei viris semper splendide. Sumo suscipiantur vim ea, ea sit accumsan tractatos adolescens. Vim ad autem signiferumque conclusionemque, et dico honestatis
        liberavisse his. Iusto melius concludaturque qui ei. His eu brute indoctum reprimique. Summo iudico tacimates eum et, per eu nihil diceret luptatum, mea latine inimicus evertitur ut. At quot phaedrum repudiare sea, mel et probo paulo disputationi,
        tota albucius eam ad. Malis sapientem his ea. Sea quis sonet audiam ut. Mea at paulo aliquid. Per ad veri impedit, harum exerci eligendi eu vim. Exerci graece temporibus ad vim, at quo apeirian patrioque efficiendi. No quo sapientem splendide
        deterruisset, qui quod omittantur ad. Qui an inani dicam fierent, voluptua gubergren in per. Vel ad munere impetus tincidunt, ea lorem prompta denique nam. Eu modus causae appetere his, quis ferri epicuri mei ea, vim ea eros inimicus moderatius.
        Ubique impetus interesset te sea. Ex exerci indoctum cum. Pri phaedrum dissentiunt cu, nonumy rationibus mel an. Mel ridens ornatus delicatissimi et, ignota delenit maiestatis ei vim. Clita alterum maiestatis vel et, nobis noluisse sententiae
        ut nam, no usu alii dolores conclusionemque. At decore option suscipit pro, an qui epicurei disputationi. Sit at viris facilis perpetua, eam nostrud facilisis ei. Te ius purto nihil facilisi, an vis utinam aliquam. Eum ad delenit intellegam, ius
        alii meis tacimates in. In eum amet fabellas. Ignota habemus no pro, ad purto labitur mea, te quaeque periculis eum. In eam veniam accumsan evertitur. At cum semper euismod, has et offendit sensibus, no summo tincidunt assueverit pro. Ut munere
        tritani democritum nec, amet natum salutatus eu sit. Ne usu modus omnium aliquam. Erant consequuntur no quo, nec in nihil nostro vituperata. Rationibus sadipscing signiferumque ne duo, te vis postulant consequat interpretaris, nominavi salutandi
        nam cu. No vim zril ignota, nam expetendis intellegam cu. Cum case malorum voluptatum an, te ornatus fabellas complectitur his. Vim lorem ponderum ex, affert albucius ius no. Nemore ancillae quo et. Et natum everti accusamus eam, mea fugit populo
        appetere ad. Eu ferri delicata eam, ea liber menandri antiopam mei, an singulis salutatus eam. Pro an errem simul, usu id elit tollit abhorreant. Veniam populo per et, sea in meis quando. Has suavitate maluisset ea. Modo case te vim, sit in facete
        feugiat pertinax, veri habeo at quo. Harum senserit sea ne, platonem sapientem ea vel. Vim admodum feugait perfecto ne, graeci audire te mei. Deserunt pericula mel ut, officiis neglegentur ius ea. Rebum eloquentiam contentiones cu sit, cu has
        possit temporibus, sed quem erat alterum ut. Id sea apeirian molestiae. Ea sed doctus omittam, hendrerit forensibus sed ut. Ne mazim deleniti vituperata eam, ex everti pertinacia eum. In erant dignissim vim, id pro quidam dolorum. Cu explicari
        vituperata cum. Incorrupte definitiones usu ad. Ex has assum sapientem intellegebat, mei mentitum delectus quaestio ea, quas augue bonorum an pri. An molestie necessitatibus sea, laboramus consectetuer vis id. Eu ius mutat brute, pri tacimates
        inimicus ne, delicata vulputate vituperatoribus et mel. Timeam bonorum no his.Lorem ipsum dolor sit amet, ea vix dolor dictas mnesarchum. Ad mel omnis debet. Utinam vituperatoribus quo at. Sit te solum oporteat, ad quaeque fierent nec. No minimum
        probatus qui. Tollit graece verterem mei ut, munere latine no vis, brute dolorem ancillae his cu. Nec vero nihil ut, usu vide accommodare no. Ne dicit nominati maiestatis usu, vis id amet definitiones. Cu sed brute scripserit, vidisse dolorem
        sea te, prima consulatu per ei. Ut quo discere vituperata argumentum, oportere adversarium eam ne. Mea munere denique voluptatum ea, et vidit graece inciderint nam. Mea ad audire concludaturque, mel eu aliquam corrumpit. Vim no probo errem fuisset.
        At primis blandit laboramus pro. Ad velit doming eam, fabulas tibique efficiantur cum no, deserunt explicari et eam. Simul homero pri ut. Vis ea tale autem lorem, vim ea regione atomorum constituto. Ei vix sapientem patrioque, mei omnesque pertinacia
        ad. Id cum error iudico, vis dicta ancillae definiebas et, eos ad euismod omittam. No sed meis torquatos, vel in tamquam luptatum, cu nulla mandamus his. Reque accumsan sententiae ius cu, eu nominavi appetere mea. Cu impetus diceret consequat
        nam, pro cu alterum periculis. Sonet vituperata te vis, ea quo nullam atomorum assueverit. Recusabo sententiae at vix. Duo autem simul oporteat ex, putent tritani ne quo. Ei inani commune reformidans eum, sonet putent noster eum ex, eam ne sumo
        eligendi tacimates. Dictas sanctus similique ad usu. Ea sint vidit tempor cum, mentitum electram imperdiet quo an. Enim officiis id mea. Rebum ignota eruditi mea ei. No nisl consequat cum. Mel cu malis etiam splendide, an veniam percipitur nam,
        dolore feugiat scripserit ex vis. Pro nonumy utroque in. Eos eu timeam mentitum insolens, sit viris euripidis dissentiet ad, usu ut alia possim luptatum. Facete aliquip petentium eam ad, ne est ferri clita putent. Vis munere mucius vivendum id.
        Quot complectitur et duo, te est aeterno fastidii incorrupte. Solum populo vix id, error probatus quaerendum mea at, choro invenire maiestatis ex mei. Ea nec graecis inciderint, populo pertinacia assueverit ne mel. Menandri partiendo te per. Cum
        no putant apeirian percipitur, habeo disputando pro ex. Eam equidem patrioque instructior ei, ea epicuri accusamus mel. In quo error oporteat consetetur. Mea te wisi cetero epicuri. Nec ei viris semper splendide. Sumo suscipiantur vim ea, ea sit
        accumsan tractatos adolescens. Vim ad autem signiferumque conclusionemque, et dico honestatis liberavisse his. Iusto melius concludaturque qui ei. His eu brute indoctum reprimique. Summo iudico tacimates eum et, per eu nihil diceret luptatum,
        mea latine inimicus evertitur ut. At quot phaedrum repudiare sea, mel et probo paulo disputationi, tota albucius eam ad. Malis sapientem his ea. Sea quis sonet audiam ut. Mea at paulo aliquid. Per ad veri impedit, harum exerci eligendi eu vim.
        Exerci graece temporibus ad vim, at quo apeirian patrioque efficiendi. No quo sapientem splendide deterruisset, qui quod omittantur ad. Qui an inani dicam fierent, voluptua gubergren in per. Vel ad munere impetus tincidunt, ea lorem prompta denique
        nam. Eu modus causae appetere his, quis ferri epicuri mei ea, vim ea eros inimicus moderatius. Ubique impetus interesset te sea. Ex exerci indoctum cum. Pri phaedrum dissentiunt cu, nonumy rationibus mel an. Mel ridens ornatus delicatissimi et,
        ignota delenit maiestatis ei vim. Clita alterum maiestatis vel et, nobis noluisse sententiae ut nam, no usu alii dolores conclusionemque. At decore option suscipit pro, an qui epicurei disputationi. Sit at viris facilis perpetua, eam nostrud facilisis
        ei. Te ius purto nihil facilisi, an vis utinam aliquam. Eum ad delenit intellegam, ius alii meis tacimates in. In eum amet fabellas. Ignota habemus no pro, ad purto labitur mea, te quaeque periculis eum. In eam veniam accumsan evertitur. At cum
        semper euismod, has et offendit sensibus, no summo tincidunt assueverit pro. Ut munere tritani democritum nec, amet natum salutatus eu sit. Ne usu modus omnium aliquam. Erant consequuntur no quo, nec in nihil nostro vituperata. Rationibus sadipscing
        signiferumque ne duo, te vis postulant consequat interpretaris, nominavi salutandi nam cu. No vim zril ignota, nam expetendis intellegam cu. Cum case malorum voluptatum an, te ornatus fabellas complectitur his. Vim lorem ponderum ex, affert albucius
        ius no. Nemore ancillae quo et. Et natum everti accusamus eam, mea fugit populo appetere ad. Eu ferri delicata eam, ea liber menandri antiopam mei, an singulis salutatus eam. Pro an errem simul, usu id elit tollit abhorreant. Veniam populo per
        et, sea in meis quando. Has suavitate maluisset ea. Modo case te vim, sit in facete feugiat pertinax, veri habeo at quo. Harum senserit sea ne, platonem sapientem ea vel. Vim admodum feugait perfecto ne, graeci audire te mei. Deserunt pericula
        mel ut, officiis neglegentur ius ea. Rebum eloquentiam contentiones cu sit, cu has possit temporibus, sed quem erat alterum ut. Id sea apeirian molestiae. Ea sed doctus omittam, hendrerit forensibus sed ut. Ne mazim deleniti vituperata eam, ex
        everti pertinacia eum. In erant dignissim vim, id pro quidam dolorum. Cu explicari vituperata cum. Incorrupte definitiones usu ad. Ex has assum sapientem intellegebat, mei mentitum delectus quaestio ea, quas augue bonorum an pri. An molestie necessitatibus
        sea, laboramus consectetuer vis id. Eu ius mutat brute, pri tacimates inimicus ne, delicata vulputate vituperatoribus et mel. Timeam bonorum no his.Lorem ipsum dolor sit amet, ea vix dolor dictas mnesarchum. Ad mel omnis debet. Utinam vituperatoribus
        quo at. Sit te solum oporteat, ad quaeque fierent nec. No minimum probatus qui. Tollit graece verterem mei ut, munere latine no vis, brute dolorem ancillae his cu. Nec vero nihil ut, usu vide accommodare no. Ne dicit nominati maiestatis usu, vis
        id amet definitiones. Cu sed brute scripserit, vidisse dolorem sea te, prima consulatu per ei. Ut quo discere vituperata argumentum, oportere adversarium eam ne. Mea munere denique voluptatum ea, et vidit graece inciderint nam. Mea ad audire concludaturque,
        mel eu aliquam corrumpit. Vim no probo errem fuisset. At primis blandit laboramus pro. Ad velit doming eam, fabulas tibique efficiantur cum no, deserunt explicari et eam. Simul homero pri ut. Vis ea tale autem lorem, vim ea regione atomorum constituto.
        Ei vix sapientem patrioque, mei omnesque pertinacia ad. Id cum error iudico, vis dicta ancillae definiebas et, eos ad euismod omittam. No sed meis torquatos, vel in tamquam luptatum, cu nulla mandamus his. Reque accumsan sententiae ius cu, eu
        nominavi appetere mea. Cu impetus diceret consequat nam, pro cu alterum periculis. Sonet vituperata te vis, ea quo nullam atomorum assueverit. Recusabo sententiae at vix. Duo autem simul oporteat ex, putent tritani ne quo. Ei inani commune reformidans
        eum, sonet putent noster eum ex, eam ne sumo eligendi tacimates. Dictas sanctus similique ad usu. Ea sint vidit tempor cum, mentitum electram imperdiet quo an. Enim officiis id mea. Rebum ignota eruditi mea ei. No nisl consequat cum. Mel cu malis
        etiam splendide, an veniam percipitur nam, dolore feugiat scripserit ex vis. Pro nonumy utroque in. Eos eu timeam mentitum insolens, sit viris euripidis dissentiet ad, usu ut alia possim luptatum. Facete aliquip petentium eam ad, ne est ferri
        clita putent. Vis munere mucius vivendum id. Quot complectitur et duo, te est aeterno fastidii incorrupte. Solum populo vix id, error probatus quaerendum mea at, choro invenire maiestatis ex mei. Ea nec graecis inciderint, populo pertinacia assueverit
        ne mel. Menandri partiendo te per. Cum no putant apeirian percipitur, habeo disputando pro ex. Eam equidem patrioque instructior ei, ea epicuri accusamus mel. In quo error oporteat consetetur. Mea te wisi cetero epicuri. Nec ei viris semper splendide.
        Sumo suscipiantur vim ea, ea sit accumsan tractatos adolescens. Vim ad autem signiferumque conclusionemque, et dico honestatis liberavisse his. Iusto melius concludaturque qui ei. His eu brute indoctum reprimique. Summo iudico tacimates eum et,
        per eu nihil diceret luptatum, mea latine inimicus evertitur ut. At quot phaedrum repudiare sea, mel et probo paulo disputationi, tota albucius eam ad. Malis sapientem his ea. Sea quis sonet audiam ut. Mea at paulo aliquid. Per ad veri impedit,
        harum exerci eligendi eu vim. Exerci graece temporibus ad vim, at quo apeirian patrioque efficiendi. No quo sapientem splendide deterruisset, qui quod omittantur ad. Qui an inani dicam fierent, voluptua gubergren in per. Vel ad munere impetus
        tincidunt, ea lorem prompta denique nam. Eu modus causae appetere his, quis ferri epicuri mei ea, vim ea eros inimicus moderatius. Ubique impetus interesset te sea. Ex exerci indoctum cum. Pri phaedrum dissentiunt cu, nonumy rationibus mel an.
        Mel ridens ornatus delicatissimi et, ignota delenit maiestatis ei vim. Clita alterum maiestatis vel et, nobis noluisse sententiae ut nam, no usu alii dolores conclusionemque. At decore option suscipit pro, an qui epicurei disputationi. Sit at
        viris facilis perpetua, eam nostrud facilisis ei. Te ius purto nihil facilisi, an vis utinam aliquam. Eum ad delenit intellegam, ius alii meis tacimates in. In eum amet fabellas. Ignota habemus no pro, ad purto labitur mea, te quaeque periculis
        eum. In eam veniam accumsan evertitur. At cum semper euismod, has et offendit sensibus, no summo tincidunt assueverit pro. Ut munere tritani democritum nec, amet natum salutatus eu sit. Ne usu modus omnium aliquam. Erant consequuntur no quo, nec
        in nihil nostro vituperata. Rationibus sadipscing signiferumque ne duo, te vis postulant consequat interpretaris, nominavi salutandi nam cu. No vim zril ignota, nam expetendis intellegam cu. Cum case malorum voluptatum an, te ornatus fabellas
        complectitur his. Vim lorem ponderum ex, affert albucius ius no. Nemore ancillae quo et. Et natum everti accusamus eam, mea fugit populo appetere ad. Eu ferri delicata eam, ea liber menandri antiopam mei, an singulis salutatus eam. Pro an errem
        simul, usu id elit tollit abhorreant. Veniam populo per et, sea in meis quando. Has suavitate maluisset ea. Modo case te vim, sit in facete feugiat pertinax, veri habeo at quo. Harum senserit sea ne, platonem sapientem ea vel. Vim admodum feugait
        perfecto ne, graeci audire te mei. Deserunt pericula mel ut, officiis neglegentur ius ea. Rebum eloquentiam contentiones cu sit, cu has possit temporibus, sed quem erat alterum ut. Id sea apeirian molestiae. Ea sed doctus omittam, hendrerit forensibus
        sed ut. Ne mazim deleniti vituperata eam, ex everti pertinacia eum. In erant dignissim vim, id pro quidam dolorum. Cu explicari vituperata cum. Incorrupte definitiones usu ad. Ex has assum sapientem intellegebat, mei mentitum delectus quaestio
        ea, quas augue bonorum an pri. An molestie necessitatibus sea, laboramus consectetuer vis id. Eu ius mutat brute, pri tacimates inimicus ne, delicata vulputate vituperatoribus et mel. Timeam bonorum no his.</p>
    </div>
  </div>
</body>

</html>

Troubleshooting weird artifact

copy iconCopydownload iconDownload
.menu-item-other:nth-child(3) > a::before {
    font: var(--fa-font-solid);
    content: "\f3a5";
}
.menu > ol > .menu-item-other:nth-child(3) > a::before {
    font: var(--fa-font-solid);
    content: "\f3a5";
}
-----------------------
.menu-item-other:nth-child(3) > a::before {
    font: var(--fa-font-solid);
    content: "\f3a5";
}
.menu > ol > .menu-item-other:nth-child(3) > a::before {
    font: var(--fa-font-solid);
    content: "\f3a5";
}

Restrict creation of new divs to a specific area

copy iconCopydownload iconDownload
var minutesLabel = document.getElementById("minutes");
var secondsLabel = document.getElementById("seconds");
var clickEl = document.getElementById("clicks");
var totalSeconds = 0;
let clicks = 0;
setInterval(setTime, 1000);

function setTime() {
    ++totalSeconds;
    secondsLabel.innerText = pad(totalSeconds % 60);
    minutesLabel.innerText = pad(parseInt(totalSeconds / 60));
}

function pad(val) {
    var valString = val + "";
    if (valString.length < 2) {
        return "0" + valString;
    } else {
        return valString;
    }
}


var spawnRadius = document.getElementById("spawnRadius");
var spawnArea = spawnRadius.getBoundingClientRect();
const circleSize = 66; // Including borders

//create circle
function createDiv(id, color) {
    let div = document.createElement('div');
    div.setAttribute('class', id);
    if (color === undefined) {
        let colors = ['#35def2', '#35f242', '#b2f235', '#f2ad35', '#f24735', '#3554f2', '#8535f2', '#eb35f2', '#f2359b', '#f23547'];
        div.style.borderColor = colors[Math.floor(Math.random() * colors.length)];
    }
    else {
        div.style.borderColor = color; 
    }
    
    // Randomly position circle within spawn area
    div.style.top = `${Math.floor(Math.random() * (spawnArea.height - circleSize))}px`;
    div.style.left = `${Math.floor(Math.random() * (spawnArea.width - circleSize))}px`;
    div.classList.add("circle", "animation");
    
    // Add click handler
    let clicked = false;
    div.addEventListener('click', (event) => {
        if (clicked) { return; } // Only allow one click per circle
        clicked = true;
        
        div.style.animation = 'Animation 200ms linear forwards';
        setTimeout(() => { spawnRadius.removeChild(div); }, 220);
        clickEl.innerText = ++clicks
    });
    
    spawnRadius.appendChild(div);
}

let i = 0;

const oneSecond = 1000;

setInterval(() => {
    i += 1;
    createDiv(`circle${i}`);
}, oneSecond);
html, body {
    width: 100%;
    height: 100%;
    margin: 0;
    background: #0f0f0f;
}

.back {
    font-family: "Comic Sans MS", cursive, sans-serif;
    font-size: 25px;
    letter-spacing: 2px;
    word-spacing: 2px;
    color: #ffffff;
    text-shadow: 0 0 5px #ffffff, 0 0 10px #ffffff, 0 0 20px #ffffff, 0 0 40px #ff00de, 0 0 80px #ff00de, 0 0 90px #ff00de, 0 0 100px #ff00de, 0 0 150px #ff00de;
    font-weight: 700;
    text-decoration: none;
    font-style: italic;
    font-variant: normal;
    text-transform: lowercase;
    position: absolute;
    top: 25%;
    left: 2%;
    user-select: none;
    z-index: 999;
}

.panel {
    color: #0f0f0f;
    font-size: 40px;
    z-index: 999;
    position: absolute;
    cursor: default;
    user-select: none;
    color: #0f0f0f;
}

.score {
    border: 1px solid #ffffff;
    padding: 5px;
    background-color: #ffffff;
    border-radius: 40px 10px;
}

.time {
    border: 1px solid #ffffff;
    padding: 5px;
    background-color: #ffffff;
    border-radius: 40px 10px;
}

.circle {
    width: 60px;
    height: 60px;
    border-radius: 60px;
    background-color: #0f0f0f;
    border: 3px solid #000;
    position: absolute;
}

@keyframes Animation {
    0% {
        transform: scale(1);
        opacity: 1;
    }
    50% {
        transform: scale(.8);
    }
    100% {
        transform: scale(1);
        opacity: 0;
    }
}

#spawnRadius {
    top: 55%;
    height: 650px;
    width: 1000px;
    left: 50%;
    white-space: nowrap;
    position: absolute;
    transform: translate(-50%, -50%);
    background: #0f0f0f;
    border: 2px solid #ebc6df;
}
<span class="panel">
    <span class="score">Score: <a id="clicks">0</a></span>
    <span class="time">Time: <label id="minutes">00</label>:<label id="seconds">00</label></span>
</span>
<a href="" class="back">back</a>
<div id="spawnRadius"></div>
-----------------------
var minutesLabel = document.getElementById("minutes");
var secondsLabel = document.getElementById("seconds");
var clickEl = document.getElementById("clicks");
var totalSeconds = 0;
let clicks = 0;
setInterval(setTime, 1000);

function setTime() {
    ++totalSeconds;
    secondsLabel.innerText = pad(totalSeconds % 60);
    minutesLabel.innerText = pad(parseInt(totalSeconds / 60));
}

function pad(val) {
    var valString = val + "";
    if (valString.length < 2) {
        return "0" + valString;
    } else {
        return valString;
    }
}


var spawnRadius = document.getElementById("spawnRadius");
var spawnArea = spawnRadius.getBoundingClientRect();
const circleSize = 66; // Including borders

//create circle
function createDiv(id, color) {
    let div = document.createElement('div');
    div.setAttribute('class', id);
    if (color === undefined) {
        let colors = ['#35def2', '#35f242', '#b2f235', '#f2ad35', '#f24735', '#3554f2', '#8535f2', '#eb35f2', '#f2359b', '#f23547'];
        div.style.borderColor = colors[Math.floor(Math.random() * colors.length)];
    }
    else {
        div.style.borderColor = color; 
    }
    
    // Randomly position circle within spawn area
    div.style.top = `${Math.floor(Math.random() * (spawnArea.height - circleSize))}px`;
    div.style.left = `${Math.floor(Math.random() * (spawnArea.width - circleSize))}px`;
    div.classList.add("circle", "animation");
    
    // Add click handler
    let clicked = false;
    div.addEventListener('click', (event) => {
        if (clicked) { return; } // Only allow one click per circle
        clicked = true;
        
        div.style.animation = 'Animation 200ms linear forwards';
        setTimeout(() => { spawnRadius.removeChild(div); }, 220);
        clickEl.innerText = ++clicks
    });
    
    spawnRadius.appendChild(div);
}

let i = 0;

const oneSecond = 1000;

setInterval(() => {
    i += 1;
    createDiv(`circle${i}`);
}, oneSecond);
html, body {
    width: 100%;
    height: 100%;
    margin: 0;
    background: #0f0f0f;
}

.back {
    font-family: "Comic Sans MS", cursive, sans-serif;
    font-size: 25px;
    letter-spacing: 2px;
    word-spacing: 2px;
    color: #ffffff;
    text-shadow: 0 0 5px #ffffff, 0 0 10px #ffffff, 0 0 20px #ffffff, 0 0 40px #ff00de, 0 0 80px #ff00de, 0 0 90px #ff00de, 0 0 100px #ff00de, 0 0 150px #ff00de;
    font-weight: 700;
    text-decoration: none;
    font-style: italic;
    font-variant: normal;
    text-transform: lowercase;
    position: absolute;
    top: 25%;
    left: 2%;
    user-select: none;
    z-index: 999;
}

.panel {
    color: #0f0f0f;
    font-size: 40px;
    z-index: 999;
    position: absolute;
    cursor: default;
    user-select: none;
    color: #0f0f0f;
}

.score {
    border: 1px solid #ffffff;
    padding: 5px;
    background-color: #ffffff;
    border-radius: 40px 10px;
}

.time {
    border: 1px solid #ffffff;
    padding: 5px;
    background-color: #ffffff;
    border-radius: 40px 10px;
}

.circle {
    width: 60px;
    height: 60px;
    border-radius: 60px;
    background-color: #0f0f0f;
    border: 3px solid #000;
    position: absolute;
}

@keyframes Animation {
    0% {
        transform: scale(1);
        opacity: 1;
    }
    50% {
        transform: scale(.8);
    }
    100% {
        transform: scale(1);
        opacity: 0;
    }
}

#spawnRadius {
    top: 55%;
    height: 650px;
    width: 1000px;
    left: 50%;
    white-space: nowrap;
    position: absolute;
    transform: translate(-50%, -50%);
    background: #0f0f0f;
    border: 2px solid #ebc6df;
}
<span class="panel">
    <span class="score">Score: <a id="clicks">0</a></span>
    <span class="time">Time: <label id="minutes">00</label>:<label id="seconds">00</label></span>
</span>
<a href="" class="back">back</a>
<div id="spawnRadius"></div>
-----------------------
var minutesLabel = document.getElementById("minutes");
var secondsLabel = document.getElementById("seconds");
var clickEl = document.getElementById("clicks");
var totalSeconds = 0;
let clicks = 0;
setInterval(setTime, 1000);

function setTime() {
    ++totalSeconds;
    secondsLabel.innerText = pad(totalSeconds % 60);
    minutesLabel.innerText = pad(parseInt(totalSeconds / 60));
}

function pad(val) {
    var valString = val + "";
    if (valString.length < 2) {
        return "0" + valString;
    } else {
        return valString;
    }
}


var spawnRadius = document.getElementById("spawnRadius");
var spawnArea = spawnRadius.getBoundingClientRect();
const circleSize = 66; // Including borders

//create circle
function createDiv(id, color) {
    let div = document.createElement('div');
    div.setAttribute('class', id);
    if (color === undefined) {
        let colors = ['#35def2', '#35f242', '#b2f235', '#f2ad35', '#f24735', '#3554f2', '#8535f2', '#eb35f2', '#f2359b', '#f23547'];
        div.style.borderColor = colors[Math.floor(Math.random() * colors.length)];
    }
    else {
        div.style.borderColor = color; 
    }
    
    // Randomly position circle within spawn area
    div.style.top = `${Math.floor(Math.random() * (spawnArea.height - circleSize))}px`;
    div.style.left = `${Math.floor(Math.random() * (spawnArea.width - circleSize))}px`;
    div.classList.add("circle", "animation");
    
    // Add click handler
    let clicked = false;
    div.addEventListener('click', (event) => {
        if (clicked) { return; } // Only allow one click per circle
        clicked = true;
        
        div.style.animation = 'Animation 200ms linear forwards';
        setTimeout(() => { spawnRadius.removeChild(div); }, 220);
        clickEl.innerText = ++clicks
    });
    
    spawnRadius.appendChild(div);
}

let i = 0;

const oneSecond = 1000;

setInterval(() => {
    i += 1;
    createDiv(`circle${i}`);
}, oneSecond);
html, body {
    width: 100%;
    height: 100%;
    margin: 0;
    background: #0f0f0f;
}

.back {
    font-family: "Comic Sans MS", cursive, sans-serif;
    font-size: 25px;
    letter-spacing: 2px;
    word-spacing: 2px;
    color: #ffffff;
    text-shadow: 0 0 5px #ffffff, 0 0 10px #ffffff, 0 0 20px #ffffff, 0 0 40px #ff00de, 0 0 80px #ff00de, 0 0 90px #ff00de, 0 0 100px #ff00de, 0 0 150px #ff00de;
    font-weight: 700;
    text-decoration: none;
    font-style: italic;
    font-variant: normal;
    text-transform: lowercase;
    position: absolute;
    top: 25%;
    left: 2%;
    user-select: none;
    z-index: 999;
}

.panel {
    color: #0f0f0f;
    font-size: 40px;
    z-index: 999;
    position: absolute;
    cursor: default;
    user-select: none;
    color: #0f0f0f;
}

.score {
    border: 1px solid #ffffff;
    padding: 5px;
    background-color: #ffffff;
    border-radius: 40px 10px;
}

.time {
    border: 1px solid #ffffff;
    padding: 5px;
    background-color: #ffffff;
    border-radius: 40px 10px;
}

.circle {
    width: 60px;
    height: 60px;
    border-radius: 60px;
    background-color: #0f0f0f;
    border: 3px solid #000;
    position: absolute;
}

@keyframes Animation {
    0% {
        transform: scale(1);
        opacity: 1;
    }
    50% {
        transform: scale(.8);
    }
    100% {
        transform: scale(1);
        opacity: 0;
    }
}

#spawnRadius {
    top: 55%;
    height: 650px;
    width: 1000px;
    left: 50%;
    white-space: nowrap;
    position: absolute;
    transform: translate(-50%, -50%);
    background: #0f0f0f;
    border: 2px solid #ebc6df;
}
<span class="panel">
    <span class="score">Score: <a id="clicks">0</a></span>
    <span class="time">Time: <label id="minutes">00</label>:<label id="seconds">00</label></span>
</span>
<a href="" class="back">back</a>
<div id="spawnRadius"></div>

SVG that renders differently on different OS

copy iconCopydownload iconDownload
<svg
   width="600px"
   height="600px"
   viewBox="0 0 600 600"
   version="1.1"
   id="SVGRoot"
   sodipodi:docname="Busskartan_Logo_2.svg"
   inkscape:version="1.1.2 (b8e25be833, 2022-02-05)"
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
   xmlns="http://www.w3.org/2000/svg"
   xmlns:svg="http://www.w3.org/2000/svg">
  <sodipodi:namedview
     id="namedview2676"
     pagecolor="#ffffff"
     bordercolor="#666666"
     borderopacity="1.0"
     inkscape:pageshadow="2"
     inkscape:pageopacity="0.0"
     inkscape:pagecheckerboard="0"
     inkscape:document-units="px"
     showgrid="false"
     inkscape:zoom="1.2810466"
     inkscape:cx="129.58155"
     inkscape:cy="310.68347"
     inkscape:window-width="1920"
     inkscape:window-height="1137"
     inkscape:window-x="-8"
     inkscape:window-y="-8"
     inkscape:window-maximized="1"
     inkscape:current-layer="layer1" />
  
  
  <style>
  @font-face {
    font-family: 'Wide Latin';
    src: url('data:font/woff;charset=utf-8;base64,d09GRgABAAAAAAZQAA0AAAAACNwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHREVGAAAGOAAAABYAAAAWABEABU9TLzIAAALgAAAASQAAAFZ4/57vY21hcAAAAywAAAAxAAAAPAB4AF1jdnQgAAADeAAAAAgAAAAIA9QDpWdseWYAAAEwAAABFwAAASQnk1e2aGVhZAAAAnQAAAA2AAAANshlm9toaGVhAAACwAAAACAAAAAkFIsM2WhtdHgAAAKsAAAAFAAAABQS8wBSbG9jYQAAAmgAAAAMAAAADABMAN5tYXhwAAACSAAAACAAAAAgAH0BgW5hbWUAAAOAAAACkAAABTZdrwoOcG9zdAAABhAAAAAnAAAAOkWiGRdwcmVwAAADYAAAABgAAAAYVl9n+XjaJYy9SsRAHMT//82XXL52b5MoSXNR5LCKGi0OF0kRfYMrfAGfwGewEysRrGy0scqRVokgCkKusROvE7SwFUQvwT2OmWGmmR8QyAHIoTYEBQxYzRhBXTNUBRSiqQi6oSeCvomZIBHzkbKY9WVyspy38vp7k6v1XyoJDoDZlSwbPIjgqLCtRJR+5HjKYiJGJli0qjIrXAo4czsLuooerR6k5obMRI8jIPgBAKfjMa1raV6YnUQUjisZUejSiRhZYcC6g5HuhrJKtDkBLhffWOdxT/U9TWV0DZFp8eb21krM4t6sHOMJ9/CsuSa307ufXfwm92Tn46t5JimGL82xNny8/Nw/aN/bEgdk8npyMT09v/oHNeNNjwAAAQAAAAUASgAHAEkABAACAAQAAAAAAAAAZgDrAAIAAQAAACYAJgAmACYAkgABAAAAAYKPa833KV8PPPUAHwgAAAAAAKca51MAAAAAs97nZ/6r/d4PjQe3AAAACAACAAAAAAAAAqoARAAAAAACqgAAAmYAAAs5AA542mNgZGBgC/gXwMDAf/Pf6n+r+HsZgCIogBUAnu4GgXjaY2Bkm8s4gYGTgYHNjbmZgQFGM0szfGDiZWBg4uJiZ2VlZWJhAUoxMiCB0KBwBQYHBgUGJ9ZZ/ywZ9di3MykpQNUAAHsgCP8AAAB42mNgYGBiYGBgBmIRIMkIplkYNIA0G5BmBMoqMDj9/w/kg+n/j/8fAqsCAgCMUgjPAAAAQAoDAwICAQEAAAAwuAEkhR0TAD8/Pz8BAAAFVQPT/lB42qWTT2sTQRjG3/3TJK2xlFqLotY5eGgFF1LsIYiH/gELpqWkaXNes5Ptmu1umN0GcvLmB/CoX8CCCB4VxLsfwIM3PRT0KJ7FZ95szbSIFxNm9jfv+7zvPJnZENGidUIWjT5HGCO2aAqrEdtUpicFO0bcNXiCqvS04BJN0rOCy3SPXqDKch30qdIn5gnwDH1lLnH8B3OZ47+YK5qtaeZJdPpuLRRs0ZxdKdimaft6wY4Rdw2eoCv27YJLNGuvFVymgd1injK8XdD72h+Zq0Z8WrP9mXmG9z1hvgSetX8yzxn6y7qPU2KeN+JXda0zz3yNNbeYbxiamwbfYv1d5jvM7L9ieK4Y/atGvFr4bw37sut3pDgWtXp9Wezm/QOZZGki1mK/J8XiZhoHURJmS6KRB57Y8HP/VLvXbHtiJ1V5lCbZaXAr6qg0S7u5WE9V3xOrcSxUFB7kmVAyk2ogA68dBVI0/DxKmjI8in21L1WGJqLmrdQ4rhVjVSheipbyA3noq55Iu3Ap/2mTtiklRYfkUwx6REPrIkl6TAl9wxjndinHM6EAs6LAee68cd47HzDeOu+cV9SiIfVR2UW+g6egY4wa1fFdBun6Ph0gk1CGvglia+jrU4/Vi7SJaIz+EXIhNEuINlAVkAfagFI7ON93j5rUZsUOu81Rn/Ie55VbyHSgSHn/LpSC1rmmz/Wr2D3GU0EXwmnOPRTcZRiKBpi1lzbyAXtusCftt4l1iP9xzKezz/qscKI9eLSCeaw/7fG3XiFWrzFa6OFz9pC79hDTvkdnKf/jNMd3rm82+rP+gpX5Psgzt873fiaf0NBdcGvuQ/eBex9z/UynBPXb0A34V+h3aRU5hVNKdNffP07dW3jaY2BiAIN/GowMWAErAwMjEyMzAzODKlt6TmVBhiGEMgIAX9AGFQAAAQAAAAwAAAAAAAAAAgABAAEABAABAAA=') format('woff');
    font-weight: normal;
    font-style: normal;
}
    
    
text {
  font-style: normal;
  font-variant: normal;
  font-weight: normal;
  font-stretch: normal;
  font-size: 218.971px;
  line-height: 1.25;
  font-family: "Wide Latin";
  -inkscape-font-specification: "Wide Latin, Normal";
  font-variant-ligatures: normal;
  font-variant-caps: normal;
  font-variant-numeric: normal;
  font-variant-east-asian: normal;
  white-space: pre;
  inline-size: 318.312;
  fill: #1565c0;
  fill-opacity: 1;
  stroke: none;
  stroke-width: 1.14047;
}
  
  </style>
  
  <defs
     id="defs2671">
    <meshgradient
       inkscape:collect="always"
       id="meshgradient26793"
       gradientUnits="userSpaceOnUse"
       x="31.430662"
       y="56.305637">
      <meshrow
         id="meshrow26795">
        <meshpatch
           id="meshpatch26797">
          <stop
             path="c 157.476,0  314.952,0  472.428,0"
             style="stop-color:#ffffff;stop-opacity:1"
             id="stop26799" />
          <stop
             path="c 0,189.555  0,379.109  0,568.664"
             style="stop-color:#1565c0;stop-opacity:1"
             id="stop26801" />
          <stop
             path="c -157.476,0  -314.952,0  -472.428,0"
             style="stop-color:#ffffff;stop-opacity:1"
             id="stop26803" />
          <stop
             path="c 0,-189.555  0,-379.109  0,-568.664"
             style="stop-color:#1565c0;stop-opacity:1"
             id="stop26805" />
        </meshpatch>
      </meshrow>
    </meshgradient>
  </defs>
  <g
     inkscape:label="Lager 1"
     inkscape:groupmode="layer"
     id="layer1">
    <text
       xml:space="preserve"
       x="221.05212"
       y="274.11481"
       id="text18198"
       transform="matrix(1.8748445,0,0,3.1101258,-403.22818,-339.41619)"><tspan
         x="221.05212"
         y="274.11481"
         id="tspan27335">B</tspan></text>
  </g>
 
</svg>

Beautiful Soup not working on this website

copy iconCopydownload iconDownload
from selenium import webdriver
from webdriver_manager.firefox import GeckoDriverManager
from bs4 import BeautifulSoup


url = 'https://www.vanguard.com.au/personal/products/en/overview'
browser = webdriver.Firefox(executable_path=GeckoDriverManager().install())
browser.get(url)

soup = BeautifulSoup(browser.page_source, 'html.parser')
browser.close()

lists =[]
title = soup.find('h1', class_='heading2 gbs-font-vanguard-red')
for links in soup.find_all('a', style='padding-bottom: 1px;'):
    link_text = links['href']
    lists.append(link_text)

print(title)
print(lists)
<h1 class="heading2 gbs-font-vanguard-red">Investment products</h1>
['/personal/products/en/detail/8132', '/personal/products/en/detail/8219', '/personal/products/en/detail/8121',...,'/personal/products/en/detail/8217']
-----------------------
from selenium import webdriver
from webdriver_manager.firefox import GeckoDriverManager
from bs4 import BeautifulSoup


url = 'https://www.vanguard.com.au/personal/products/en/overview'
browser = webdriver.Firefox(executable_path=GeckoDriverManager().install())
browser.get(url)

soup = BeautifulSoup(browser.page_source, 'html.parser')
browser.close()

lists =[]
title = soup.find('h1', class_='heading2 gbs-font-vanguard-red')
for links in soup.find_all('a', style='padding-bottom: 1px;'):
    link_text = links['href']
    lists.append(link_text)

print(title)
print(lists)
<h1 class="heading2 gbs-font-vanguard-red">Investment products</h1>
['/personal/products/en/detail/8132', '/personal/products/en/detail/8219', '/personal/products/en/detail/8121',...,'/personal/products/en/detail/8217']
-----------------------
from selenium import webdriver
from selenium.webdriver.common.by import By
             
url = 'https://www.vanguard.com.au/personal/products/en/overview'

lists = []

#driver = webdriver.Chrome(executable_path="/path/to/chromedrive.exe")
driver = webdriver.Firefox(executable_path="/path/to/geckodrive.exe")
driver.get(url)

title = driver.find_element(By.XPATH, '//h1[@class="heading2 gbs-font-vanguard-red"]')
print(title.text)

all_items = driver.find_elements(By.XPATH, '//a[@style="padding-bottom: 1px;"]')

for links in all_items:
    link_text = links.get_attribute('href')
    print(link_text)
    lists.append(link_text)
-----------------------
import pandas as pd
import requests


url = 'https://www3.vanguard.com.au/personal/products/funds.json'
payload = {
'context': '/personal/products/',
'countryCode': 'au.ret',
'paths': "[[['funds','legacyFunds'],'AU']]",
'method': 'get'}

jsonData = requests.get(url, params=payload).json()

results = jsonData['jsonGraph']['funds']['AU']['value']


df1 = pd.json_normalize(results, record_path=['children'])
df2 = pd.json_normalize(results, record_path=['listings'])


df = pd.concat([df1, df2], axis=0)
df['url_link'] = 'https://www.vanguard.com.au/personal/products/en/detail/' + df['portId'] + '/Overview'
print(df[['fundName', 'url_link']])
                                             fundName                                           url_link
0         Vanguard Active Emerging Market Equity Fund  https://www.vanguard.com.au/personal/products/...
1             Vanguard Active Global Credit Bond Fund  https://www.vanguard.com.au/personal/products/...
2                  Vanguard Active Global Growth Fund  https://www.vanguard.com.au/personal/products/...
3   Vanguard Australian Corporate Fixed Interest I...  https://www.vanguard.com.au/personal/products/...
4       Vanguard Australian Fixed Interest Index Fund  https://www.vanguard.com.au/personal/products/...
..                                                ...                                                ...
23  Vanguard MSCI Australian Small Companies Index...  https://www.vanguard.com.au/personal/products/...
24  Vanguard MSCI Index International Shares (Hedg...  https://www.vanguard.com.au/personal/products/...
25       Vanguard MSCI Index International Shares ETF  https://www.vanguard.com.au/personal/products/...
26  Vanguard MSCI International Small Companies In...  https://www.vanguard.com.au/personal/products/...
27  Vanguard International Credit Securities Hedge...  https://www.vanguard.com.au/personal/products/...

[66 rows x 2 columns]
-----------------------
import pandas as pd
import requests


url = 'https://www3.vanguard.com.au/personal/products/funds.json'
payload = {
'context': '/personal/products/',
'countryCode': 'au.ret',
'paths': "[[['funds','legacyFunds'],'AU']]",
'method': 'get'}

jsonData = requests.get(url, params=payload).json()

results = jsonData['jsonGraph']['funds']['AU']['value']


df1 = pd.json_normalize(results, record_path=['children'])
df2 = pd.json_normalize(results, record_path=['listings'])


df = pd.concat([df1, df2], axis=0)
df['url_link'] = 'https://www.vanguard.com.au/personal/products/en/detail/' + df['portId'] + '/Overview'
print(df[['fundName', 'url_link']])
                                             fundName                                           url_link
0         Vanguard Active Emerging Market Equity Fund  https://www.vanguard.com.au/personal/products/...
1             Vanguard Active Global Credit Bond Fund  https://www.vanguard.com.au/personal/products/...
2                  Vanguard Active Global Growth Fund  https://www.vanguard.com.au/personal/products/...
3   Vanguard Australian Corporate Fixed Interest I...  https://www.vanguard.com.au/personal/products/...
4       Vanguard Australian Fixed Interest Index Fund  https://www.vanguard.com.au/personal/products/...
..                                                ...                                                ...
23  Vanguard MSCI Australian Small Companies Index...  https://www.vanguard.com.au/personal/products/...
24  Vanguard MSCI Index International Shares (Hedg...  https://www.vanguard.com.au/personal/products/...
25       Vanguard MSCI Index International Shares ETF  https://www.vanguard.com.au/personal/products/...
26  Vanguard MSCI International Small Companies In...  https://www.vanguard.com.au/personal/products/...
27  Vanguard International Credit Securities Hedge...  https://www.vanguard.com.au/personal/products/...

[66 rows x 2 columns]

HTML not showing on webView inside Android

copy iconCopydownload iconDownload
const styles = StyleSheet.create({
    container: {justifyContent: 'center', marginBottom: 10, opacity: 0.99, overflow: 'hidden' , width: '100%'},
    webView: { height: 'auto', marginBottom: 20, marginTop: 20, opacity: 0.99, overflow: 'hidden', width: Metrics.screenWidth - 50 }
})

const HTMLView = props => {
    const {html} = props
    // const newHtml = `<h2 dir="auto"><strong style="color: rgb(230, 0, 0); background-color: transparent;" dir="auto">What to See and What to Do In London&nbsp;</strong></h2><p dir='auto' style='line-height:1.38;margin-top:0pt;margin-bottom:0pt;'><span style='font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;' dir='auto'>We visited England on such countless events and we love its capital city given the sheer number of marvelous activities in London. During our heartfelt 4 days in London schedule, we invested such a lot of energy simply absorbing what the city brings to the table. London implies a great deal to us too, as this is the city where we requested our wedding bands from. It's likewise the very first city we had a movement date in, with a cool visit around Tate Modern. We are sure you will go gaga for London and will need to return for additional. Also, assuming you visit London with your family, have confidence there are a lot of free London exhibition halls for youngsters too.</span></p>`
    const htmlStr = '<\!Doctype html><html><head><meta charset="UTF-8"><title>&nbsp;</title><meta name="viewport" content="width=device-width, initial-scale=1.0"></head><body>' + html.toString() + '</body></html>'
    const webiewStyle = {...styles.webView, minHeight: (html.length)}

    const [webViewHeight, setWebViewHeight] = useState((html.length))
    const webViewStyle = useMemo(() => ({height: webViewHeight}), [webViewHeight])
    // const webViewStyle = {height: webViewHeight}

    return (
        <View
            style={styles.container}
        >
            {Platform.OS === 'ios' ? <WebView
                style={[webiewStyle, webViewStyle]}
                source={{html: htmlStr, baseUrl: ''}}
                javaScriptEnabled={true}
                domStorageEnabled={true}
                scalesPageToFit={true}
                scrollEnabled={false}
                automaticallyAdjustContentInsets={false}
                startInLoadingState={true}
                originWhitelist={['*']}
                onMessage={event => { setWebViewHeight(parseInt(event.nativeEvent.data)+10)}}
                injectedJavaScript='window.ReactNativeWebView.postMessage(document.body.scrollHeight)'
                // useWebKit={true}
                viewportContent={'width=device-width, user-scalable=no, initial-scale=1.0'}
                onContentProcessDidTerminate={(syntheticEvent) => {
                    const { nativeEvent } = syntheticEvent
                    console.log('Content process terminated, reloading', nativeEvent)
                    this.refs.webview.reload()
                }}
                onError={(syntheticEvent) => {
                    const { nativeEvent } = syntheticEvent
                    console.log('WebView error: ', nativeEvent)
                }}
            /> : <WebView
                style={[webiewStyle, webViewStyle]}
                source={{html: htmlStr, baseUrl: ''}}
                javaScriptEnabled={true}
                domStorageEnabled={true}
                scalesPageToFit={true}
                nestedScrollEnabled={false}
                automaticallyAdjustContentInsets={false}
                androidHardwareAccelerationDisabled={false}
                androidLayerType={'hardware'}
                startInLoadingState={true}
                originWhitelist={['*']}
                onMessage={event => { setWebViewHeight(parseInt(event.nativeEvent.data)+10)}}
                injectedJavaScript='window.ReactNativeWebView.postMessage(document.body.scrollHeight)'
                useWebKit={true}
                viewportContent={'width=device-width, user-scalable=no, initial-scale=1.0'}
                onContentProcessDidTerminate={(syntheticEvent) => {
                    const { nativeEvent } = syntheticEvent
                    console.log('Content process terminated, reloading', nativeEvent)
                    this.refs.webview.reload()
                }}
                onError={(syntheticEvent) => {
                    const { nativeEvent } = syntheticEvent
                    console.log('WebView error: ', nativeEvent)
                }}
                mixedContentMode={'always'}
                overScrollMode={'never'}
            />}
        </View>
    )
}

CSS auto hyphens turn into question-mark boxes in Chrome

copy iconCopydownload iconDownload
<html lang="sv">

Why is my css svg animation stuttering on Firefox and not on other browsers?

copy iconCopydownload iconDownload
function startPendulum() {
  let animEls = document.querySelector('[class*="animate-pendulum"]');
  animEls.classList.replace('--animate-pendulum', 'animate-pendulum');
}

function startPendulumStar() {
  let animEls = document.querySelector('[class*="animate-star"]');
  animEls.classList.replace('--animate-star', 'animate-star');
}

function addTransform() {
  let animEls = document.querySelector('[class*="pendulum-transform"]');
  animEls.classList.replace('--pendulum-transform', 'pendulum-transform');
}
.pendulum-wrp {
  background-color: rgba(0, 0, 255, 0.517);
  display: inline-block;
  width: 50%;
}

.transformBox-fill-box {
  transform-box: fill-box;
}

.pendulum-star {
  fill: #00ff00;
  transform-origin: center center;
  fill: #00ff00;
  fill-opacity: 0.517647;
  stroke: #000000;
  stroke-width: 4;
  stroke-linecap: butt;
  stroke-linejoin: miter;
}

.pendulum-rod {
  fill: rgba(0, 0, 255, 0.5);
  stroke: #000000;
  stroke-width: 4
}

.pendulum-group {
  transform-origin: center top;
}

.pendulum-transform {
  transform: translate(-20%, 5%);
}

.animate-star .pendulum-star {
  animation-name: pendulum-anim;
  animation-duration: 2s;
  animation-iteration-count: infinite;
  animation-fill-mode: forwards;
}

.animate-pendulum .pendulum-group {
  animation-name: pendulum-anim;
  animation-duration: 4s;
  animation-iteration-count: infinite;
  animation-fill-mode: forwards;
}

@keyframes pendulum-anim {
  0%,
  100% {
    transform: rotate(45deg);
  }
  50% {
    transform: rotate(-45deg);
  }
}
<div class="pendulum-wrp --animate-pendulum  --animate-star">
  <svg viewBox="0 0 1366 768" id="SVGRoot" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
  <g id="pendulum-transform" class="--pendulum-transform">
    <g id="pendulum-group" class="pendulum-group --transformBox-fill-box">
      <rect id="pendulum-rod" class="pendulum-rod" x="673" y="0" width="10" height="354" />
      <g id="pendulum-star" class="pendulum-star transformBox-fill-box">
        <path class="pendulum-star-shape" d="M677.667 383.157l-34.609 18.195l6.609-38.539l-28-27.293l38.694-5.623l17.306-35.064l17.306 35.064l38.693 5.623l-28 27.293l6.609 38.539l-34.608-18.195z" />
      </g>
    </g>
  </g>
</svg>
</div>
<p>
  <button  onclick="startPendulum()">Start pendulum animation</button>
  <button  onclick="startPendulumStar()">Start star animation</button>
  <button  onclick="addTransform()">shift by transform</button>
</p>
-----------------------
function startPendulum() {
  let animEls = document.querySelector('[class*="animate-pendulum"]');
  animEls.classList.replace('--animate-pendulum', 'animate-pendulum');
}

function startPendulumStar() {
  let animEls = document.querySelector('[class*="animate-star"]');
  animEls.classList.replace('--animate-star', 'animate-star');
}

function addTransform() {
  let animEls = document.querySelector('[class*="pendulum-transform"]');
  animEls.classList.replace('--pendulum-transform', 'pendulum-transform');
}
.pendulum-wrp {
  background-color: rgba(0, 0, 255, 0.517);
  display: inline-block;
  width: 50%;
}

.transformBox-fill-box {
  transform-box: fill-box;
}

.pendulum-star {
  fill: #00ff00;
  transform-origin: center center;
  fill: #00ff00;
  fill-opacity: 0.517647;
  stroke: #000000;
  stroke-width: 4;
  stroke-linecap: butt;
  stroke-linejoin: miter;
}

.pendulum-rod {
  fill: rgba(0, 0, 255, 0.5);
  stroke: #000000;
  stroke-width: 4
}

.pendulum-group {
  transform-origin: center top;
}

.pendulum-transform {
  transform: translate(-20%, 5%);
}

.animate-star .pendulum-star {
  animation-name: pendulum-anim;
  animation-duration: 2s;
  animation-iteration-count: infinite;
  animation-fill-mode: forwards;
}

.animate-pendulum .pendulum-group {
  animation-name: pendulum-anim;
  animation-duration: 4s;
  animation-iteration-count: infinite;
  animation-fill-mode: forwards;
}

@keyframes pendulum-anim {
  0%,
  100% {
    transform: rotate(45deg);
  }
  50% {
    transform: rotate(-45deg);
  }
}
<div class="pendulum-wrp --animate-pendulum  --animate-star">
  <svg viewBox="0 0 1366 768" id="SVGRoot" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
  <g id="pendulum-transform" class="--pendulum-transform">
    <g id="pendulum-group" class="pendulum-group --transformBox-fill-box">
      <rect id="pendulum-rod" class="pendulum-rod" x="673" y="0" width="10" height="354" />
      <g id="pendulum-star" class="pendulum-star transformBox-fill-box">
        <path class="pendulum-star-shape" d="M677.667 383.157l-34.609 18.195l6.609-38.539l-28-27.293l38.694-5.623l17.306-35.064l17.306 35.064l38.693 5.623l-28 27.293l6.609 38.539l-34.608-18.195z" />
      </g>
    </g>
  </g>
</svg>
</div>
<p>
  <button  onclick="startPendulum()">Start pendulum animation</button>
  <button  onclick="startPendulumStar()">Start star animation</button>
  <button  onclick="addTransform()">shift by transform</button>
</p>
-----------------------
function startPendulum() {
  let animEls = document.querySelector('[class*="animate-pendulum"]');
  animEls.classList.replace('--animate-pendulum', 'animate-pendulum');
}

function startPendulumStar() {
  let animEls = document.querySelector('[class*="animate-star"]');
  animEls.classList.replace('--animate-star', 'animate-star');
}

function addTransform() {
  let animEls = document.querySelector('[class*="pendulum-transform"]');
  animEls.classList.replace('--pendulum-transform', 'pendulum-transform');
}
.pendulum-wrp {
  background-color: rgba(0, 0, 255, 0.517);
  display: inline-block;
  width: 50%;
}

.transformBox-fill-box {
  transform-box: fill-box;
}

.pendulum-star {
  fill: #00ff00;
  transform-origin: center center;
  fill: #00ff00;
  fill-opacity: 0.517647;
  stroke: #000000;
  stroke-width: 4;
  stroke-linecap: butt;
  stroke-linejoin: miter;
}

.pendulum-rod {
  fill: rgba(0, 0, 255, 0.5);
  stroke: #000000;
  stroke-width: 4
}

.pendulum-group {
  transform-origin: center top;
}

.pendulum-transform {
  transform: translate(-20%, 5%);
}

.animate-star .pendulum-star {
  animation-name: pendulum-anim;
  animation-duration: 2s;
  animation-iteration-count: infinite;
  animation-fill-mode: forwards;
}

.animate-pendulum .pendulum-group {
  animation-name: pendulum-anim;
  animation-duration: 4s;
  animation-iteration-count: infinite;
  animation-fill-mode: forwards;
}

@keyframes pendulum-anim {
  0%,
  100% {
    transform: rotate(45deg);
  }
  50% {
    transform: rotate(-45deg);
  }
}
<div class="pendulum-wrp --animate-pendulum  --animate-star">
  <svg viewBox="0 0 1366 768" id="SVGRoot" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
  <g id="pendulum-transform" class="--pendulum-transform">
    <g id="pendulum-group" class="pendulum-group --transformBox-fill-box">
      <rect id="pendulum-rod" class="pendulum-rod" x="673" y="0" width="10" height="354" />
      <g id="pendulum-star" class="pendulum-star transformBox-fill-box">
        <path class="pendulum-star-shape" d="M677.667 383.157l-34.609 18.195l6.609-38.539l-28-27.293l38.694-5.623l17.306-35.064l17.306 35.064l38.693 5.623l-28 27.293l6.609 38.539l-34.608-18.195z" />
      </g>
    </g>
  </g>
</svg>
</div>
<p>
  <button  onclick="startPendulum()">Start pendulum animation</button>
  <button  onclick="startPendulumStar()">Start star animation</button>
  <button  onclick="addTransform()">shift by transform</button>
</p>

How to get the header to auto adjust its height to its content?

copy iconCopydownload iconDownload
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      * {
        box-sizing: border-box;
        font-family: Verdana, Geneva, Tahoma, sans-serif;
        font-size: 1rem;
        margin: 0px;
        padding: 0px;
      }

      body {
        display: flex;
        flex-flow: column;
        height: 100vh;
        background-color: whitesmoke;
      }
      
      body > header {
        padding:0.5rem
      }

      body > header,
      body > footer {
        flex: 0 0 auto;
        background-color: white;
        border-top: 1px solid lightgray;
        border-bottom: 1px solid lightgray;
        /* padding: 0.25rem; */
      }

      body > header .link {
        color: blue;
        border-bottom: 2px solid transparent;
        outline: 0;
        padding: 0.25rem;
        text-decoration: none;
      }

      body > header .link:hover,
      body > header .link:focus {
        border-bottom: 2px solid blue;
      }

      body > header .link.title {
        font-size: larger;
        font-variant: small-caps;
      }

      body > main {
        flex: 1 1 auto;
        overflow: auto;
      }
    </style>
  </head>
  <body>
    <header>
      <a href="#" class="link">One</a>
      <a href="#" class="link">Two</a>
      <a href="#" class="link">Three</a>
      <a href="#" class="link">Four</a>
      <a href="#" class="link">Five</a>
    </header>
    <main></main>
    <footer>Footer</footer>
  </body>
</html>
-----------------------
header{
  padding-bottom: 10px;
}
-----------------------
* {
  box-sizing: border-box;
  font-family: Verdana, Geneva, Tahoma, sans-serif;
  font-size: 1rem;
  margin: 0px;
  padding: 0px;
}

body {
  display: flex;
  flex-flow: column;
  height: 100vh;
  background-color: whitesmoke;
}

body>header,
body>footer {
  flex: 0 0 auto;
  background-color: white;
  border-top: 1px solid lightgray;
  border-bottom: 1px solid lightgray;
}

body>header .link {
  color: blue;
  border-bottom: 2px solid transparent;
  outline: 0;
  padding: 0.25rem 0.25rem 0 0.25rem;
  text-decoration: none;
  border
}

body>header .link:hover,
body>header .link:focus {
  border-bottom: 2px solid blue;
}

body>header .link.title {
  font-size: larger;
  font-variant: small-caps;
}

body>main {
  flex: 1 1 auto;
  overflow: auto;
}

header {
  min-height: 30px;
}
<body>
  <header>
    <a href="#" class="link title">One</a>
    <a href="#" class="link">Two</a>
    <a href="#" class="link">Three</a>
    <a href="#" class="link">Four</a>
    <a href="#" class="link">Five</a>
  </header>
  <main></main>
  <footer>Footer</footer>
</body>
-----------------------
* {
  box-sizing: border-box;
  font-family: Verdana, Geneva, Tahoma, sans-serif;
  font-size: 1rem;
  margin: 0px;
  padding: 0px;
}

body {
  display: flex;
  flex-flow: column;
  height: 100vh;
  background-color: whitesmoke;
}

body>header,
body>footer {
  flex: 0 0 auto;
  background-color: white;
  border-top: 1px solid lightgray;
  border-bottom: 1px solid lightgray;
}

body>header .link {
  color: blue;
  border-bottom: 2px solid transparent;
  outline: 0;
  padding: 0.25rem 0.25rem 0 0.25rem;
  text-decoration: none;
  border
}

body>header .link:hover,
body>header .link:focus {
  border-bottom: 2px solid blue;
}

body>header .link.title {
  font-size: larger;
  font-variant: small-caps;
}

body>main {
  flex: 1 1 auto;
  overflow: auto;
}

header {
  min-height: 30px;
}
<body>
  <header>
    <a href="#" class="link title">One</a>
    <a href="#" class="link">Two</a>
    <a href="#" class="link">Three</a>
    <a href="#" class="link">Four</a>
    <a href="#" class="link">Five</a>
  </header>
  <main></main>
  <footer>Footer</footer>
</body>
-----------------------
* {
  box-sizing: border-box;
  font-family: Verdana, Geneva, Tahoma, sans-serif;
  font-size: 1rem;
  margin: 0px;
  padding: 0px;
}

body {
  display: flex;
  flex-flow: column;
  height: 100vh;
}

body>header,
body>footer {
  flex: 0 0 auto;
  display: flex;
  border-top: 1px solid lightgray;
  border-bottom: 1px solid lightgray;
}

body>header .link {
  color: blue;
  border-bottom: 2px solid transparent;
  outline: 0;
  padding: 0.5rem;
  text-decoration: none;
}

body>header .link:hover,
body>header .link:focus {
  border-bottom: 2px solid blue;
}

body>main {
  flex: 1 1 auto;
  background-color: whitesmoke;
}
<body>
  <header>
    <a href="#" class="link">One</a>
    <a href="#" class="link">Two</a>
    <a href="#" class="link">Three</a>
    <a href="#" class="link">Four</a>
    <a href="#" class="link">Five</a>
  </header>
  <main></main>
  <footer>Footer</footer>
<body>
-----------------------
* {
  box-sizing: border-box;
  font-family: Verdana, Geneva, Tahoma, sans-serif;
  font-size: 1rem;
  margin: 0px;
  padding: 0px;
}

body {
  display: flex;
  flex-flow: column;
  height: 100vh;
}

body>header,
body>footer {
  flex: 0 0 auto;
  display: flex;
  border-top: 1px solid lightgray;
  border-bottom: 1px solid lightgray;
}

body>header .link {
  color: blue;
  border-bottom: 2px solid transparent;
  outline: 0;
  padding: 0.5rem;
  text-decoration: none;
}

body>header .link:hover,
body>header .link:focus {
  border-bottom: 2px solid blue;
}

body>main {
  flex: 1 1 auto;
  background-color: whitesmoke;
}
<body>
  <header>
    <a href="#" class="link">One</a>
    <a href="#" class="link">Two</a>
    <a href="#" class="link">Three</a>
    <a href="#" class="link">Four</a>
    <a href="#" class="link">Five</a>
  </header>
  <main></main>
  <footer>Footer</footer>
<body>

Community Discussions

Trending Discussions on font-v
  • Dropdown menu not displaying correctly when hovering over
  • Fixed flexbox sidebar with scrollable content - no solutions work
  • Troubleshooting weird artifact
  • Restrict creation of new divs to a specific area
  • SVG that renders differently on different OS
  • Beautiful Soup not working on this website
  • HTML not showing on webView inside Android
  • CSS auto hyphens turn into question-mark boxes in Chrome
  • Angular new project vulnerabilities
  • Why is my css svg animation stuttering on Firefox and not on other browsers?
Trending Discussions on font-v

QUESTION

Dropdown menu not displaying correctly when hovering over

Asked 2022-Mar-25 at 19:07

The dropdown menu appeared just fine. But the when hovering over the "Mobile" and "Email" link the submenu got shifted to the right. Here is a CodePen link and below the code snippet :

 div > ul > li {
      list-style: none;
      display: inline-block;
      margin: 0 20px;
      font-weight: bolder;
      font-size: large;
      font-variant: small-caps;
      position: relative;
    }
    ul > li > a {
      text-decoration: none;
      color: white;
    }
    .sub-menu {
      position: absolute;
      display: none;
    }
    ul > li:hover > .sub-menu {
      display: block;
      background-color: white;
      margin: 0px;
      padding-left: 10px;
      width: 400px;
      height: 200px;
      box-shadow: 0 0 10px;
      border-radius: 10px;
      list-style-type: none;
      text-align: left;
    }
    .sub-menu > li > a {
      color: orangered;
      padding: 0 10px;
    
    }
    .sub-menu > li:hover > a:hover {
      color: white;
      background-color: orangered;
      padding: 0 200px;
      margin: 0 200px;
      border-radius: 10px;
      float: left;
    }
    ul > li > a:hover {
      color: yellow;
    }
    div {
      background-color: orangered;
      height: 100px;
      text-align: center;
      line-height: 100px;
    }
    
 
<div>
  <ul>
    <li><a href="#">Home </a></li>
    <li><a href="#">Intro </a></li>
    <li>
      <a href="#">Contact </a>
      <ul class="sub-menu">
        <li><a href="#">Mobile</a></li>
        <li><a href="#">Email</a></li>
      </ul>
    </li>
    <li><a href="#">Help </a></li>
    <li><a href="#">Q&A </a></li>
  </ul>
</div>

    

   

I did try to put the submenu in another <div\> but the result was still the same (or maybe I'm just stupid).

ANSWER

Answered 2022-Mar-25 at 19:07

the issue come from the selector .sub-menu > li:hover > a:hover where you put padding and margin on hover

i also delete the float but i let you give item your expected design

.sub-menu > li:hover > a:hover {
  color: white;
  background-color: orangered;
  border-radius: 10px;
}

div > ul > li {
  list-style: none;
  display: inline-block;
  margin: 0 20px;
  font-weight: bolder;
  font-size: large;
  font-variant: small-caps;
  position: relative;
}
ul > li > a {
  text-decoration: none;
  color: white;
}
.sub-menu {
  position: absolute;
  display: none;
}
ul > li:hover > .sub-menu:hover {
   background: orange;
}
ul > li:hover > .sub-menu {
  display: block;
  background-color: white;
  margin: 0px;
  padding-left: 10px;
  width: 400px;
  height: 200px;
  box-shadow: 0 0 10px;
  border-radius: 10px;
  list-style-type: none;
  text-align: left;
}
.sub-menu > li > a {
  color: orangered;
  padding: 0 10px;

}
.sub-menu > li:hover > a:hover {
  color: white;
  background-color: orangered;
  border-radius: 10px;
}
ul > li > a:hover {
  color: yellow;
}

div {
  background-color: orangered;
  height: 100px;
  text-align: center;
  line-height: 100px;
}
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <link rel="stylesheet" href="CSS/Bai2.css" />
  </head>
  <body>
    <div>
      <ul>
        <li><a href="#">Home </a></li>
        <li><a href="#">Intro </a></li>
        <li>
          <a href="#">Contact </a>
          <ul class="sub-menu">
            <li><a href="#">Mobile</a></li>
            <li><a href="#">Email</a></li>
          </ul>
        </li>
        <li><a href="#">Help </a></li>
        <li><a href="#">Q&A </a></li>
      </ul>
    </div>
  </body>
</html>

If you want to have background color on one sub-menu line when you hover <a> one way can be to use selector .sub-menu>li:hover

div>ul>li {
  list-style: none;
  display: inline-block;
  margin: 0 20px;
  font-weight: bolder;
  font-size: large;
  font-variant: small-caps;
  position: relative;
}

ul>li>a {
  text-decoration: none;
  color: white;
}

.sub-menu {
  position: absolute;
  display: none;
}

ul>li:hover>.sub-menu:hover {
  background: orange;
}

ul>li:hover>.sub-menu {
  display: block;
  background-color: white;
  margin: 0px;
  padding-left: 0;
  z-index: 9;
  width: 400px;
  height: 200px;
  box-shadow: 0 0 10px;
  border-radius: 10px;
  list-style-type: none;
  text-align: left;
}

.sub-menu>li>a {
  color: orangered;
  padding: 0 10px;
}

.sub-menu>li:hover {
  background-color: orangered;
  color: yellow;
  border-radius: 10px;
  border: solid 1px;
}

.sub-menu>li:hover>a {
  color: white;
}

ul>li>a:hover {
  color: yellow;
}

div {
  background-color: orangered;
  height: 100px;
  text-align: center;
  line-height: 100px;
}
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8" />
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>Document</title>
  <link rel="stylesheet" href="CSS/Bai2.css" />
</head>

<body>
  <div>
    <ul>
      <li><a href="#">Home </a></li>
      <li><a href="#">Intro </a></li>
      <li>
        <a href="#">Contact </a>
        <ul class="sub-menu">
          <li><a href="#">Mobile</a></li>
          <li><a href="#">Email</a></li>
        </ul>
      </li>
      <li><a href="#">Help </a></li>
      <li><a href="#">Q&A </a></li>
    </ul>
  </div>
</body>

</html>

Source https://stackoverflow.com/questions/71619867

Community Discussions, Code Snippets contain sources that include Stack Exchange Network

Vulnerabilities

No vulnerabilities reported

Install font-v

The libfv library and the font-v executable are installed simultaneously with the following installation instructions. Installation with the pip package manager is the recommended approach.
Install with pip using the following command:.
Upgrade to a new version of font-v with the following command:.

Support

Source contributions to the libfv library and font-v executable are encouraged and welcomed! Please see the CONTRIBUTING.md documentation for details.

DOWNLOAD this Library from

Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from
over 430 million Knowledge Items
Find more libraries
Reuse Solution Kits and Libraries Curated by Popular Use Cases

Save this library and start creating your kit

Share this Page

share link
Compare User Interface Libraries with Highest Quality
Compare User Interface Libraries with Highest Security
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from
over 430 million Knowledge Items
Find more libraries
Reuse Solution Kits and Libraries Curated by Popular Use Cases

Save this library and start creating your kit

  • © 2022 Open Weaver Inc.