Flip Boxes won't work on Mac, but are working on phones - html

I thought I had everything covered, but I'm now having issues with flip boxes working on Mac. I was able to make them compatible with different browsers on phones. I had someone with a Mac say that they were having problems with the animation. I heard that they saw a weird blinking and can see the front of the card through the back. I'm not sure what I'm missing. The last time I had this issue was with iOS, but I was just missing one line of code. Any suggestions? Honestly, I'm winging this as I go and can use any guidance.
body {
font-family: 'Montserrat', sans-serif;
font-weight: 300;
/* black */
overflow-y: hidden;
/* Hide vertical scrollbar */
overflow-x: hidden;
/* Hide horizontal scrollbar */
}
.grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
justify-content: center;
align-items: center;
grid-gap: 10px;
}
#media only screen and (min-device-width: 320px) and (max-device-width: 480px) {
/*Desktop*/
.grid {
grid-template-columns: repeat(1, 8fr);
}
}
.flip-card {
background-color: transparent;
width: 275px;
height: 250px;
perspective: 1000px;
}
.flip-card-inner {
border-style: hidden;
position: relative;
width: 100%;
height: 100%;
text-align: left;
transition: transform 0.6s;
transform-style: preserve-3d;
}
.flip-card:hover .flip-card-inner {
transform: rotateY(180deg);
}
.flip-card-front,
.flip-card-back {
position: absolute;
width: 100%;
height: 100%;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
}
.flip-card-front {
background-color: black;
color: #152939;
text-align: center;
}
.flip-card-back {
background-color: #152939;
color: white;
transform: rotateY(180deg);
line-height: 1.25;
}
li {
margin: 10px 0;
}
.vertical-center {
margin: 0;
position: absolute;
top: 45%;
-ms-transform: translateY(-50%);
transform: translateY(-50%);
}
.container {
position: relative;
text-align: center;
color: white;
}
.centered {
position: absolute;
top: 40%;
left: 50%;
transform: translate(-50%, -50%);
}
img {
opacity: 0.45;
}
<link href=https://fonts.googleapis.com/css?family=Montserrat:400,500,700,900|Ubuntu:400,500,700 rel="stylesheet">
<section id="team">
<div class="container">
<div class="grid">
<!-- #stakeholder benefits -->
<!-- #regulatory agencies -->
<div class="flip-card">
<div class="flip-card-inner">
<div class="flip-card-front">
<div class="container">
<img src="https://i.ibb.co/26CVgtv/EMA-building-1024px.png" alt="EMA-building-1024px" border="0" width="275px" height="250px" opacity="0.4">
<h2 class="centered">Regulatory<br />Agencies</h2>
</div>
</div>
<div class="flip-card-back">
<div class="vertical-center">
<ul>
<br />
<li style="font-size:15px;">Real-time monitoring & auditing</li>
<li style="font-size:15px;">No need to go on-site to   review necessary paperwork</li>
<li style="font-size:15px;">Access to digital database on contamination levels, origin and destination(s)</li>
</ul>
</div>
</div>
</div>
</div>
<!-- #generators -->
<div class="flip-card">
<div class="flip-card-inner">
<div class="flip-card-front">
<div class="container">
<img src="https://i.ibb.co/vqw9456/ba2679-3a022e1d9d7946beaf7e22d07.png" alt="ba2679-3a022e1d9d7946beaf7e22d07" border="0" width="275px" height="250px">
<h2 class="centered">Generators</h2>
</div>
</div>
<div class="flip-card-back">
<div class="vertical-center">
<ul>
<br />
<li style="font-size:15px;">Access to real-time project updates</li>
<li style="font-size:15px;">Limit exposure to regulatory penalties</li>
<li style="font-size:15px;">Accurately forecast and   reduce costs with start-to-finish project insights</li>
<li style="font-size:15px;">Cost-effective</li>
</div>
</div>
</div>
</div>
<!-- #environmental consultants -->
<div class="flip-card">
<div class="flip-card-inner">
<div class="flip-card-front">
<div class="container">
<img src="https://i.ibb.co/QvN3jC5/Environmental-Consultants-SESA-e1510386416577.jpg" alt="Environmental-Consultants-SESA-e1510386416577" border="0" width="275px" height="250px">
<h2 class="centered">Environmental Consultants</h2>
</div>
</div>
<div class="flip-card-back">
<div class="vertical-center">
<br />
<ul>
<li style="font-size:15px;">Easier vetting to review credentials of necessary companies</li>
<li style="font-size:15px;">Single and centralized repository to access all   relevant documents</li>
</ul>
</div>
</div>
</div>
</div>
<!-- #remediation consultants -->
<div class="flip-card">
<div class="flip-card-inner">
<div class="flip-card-front">
<div class="container">
<img src="https://i.ibb.co/0KxTnM9/remediation-2-722x368.jpg" alt="remediation-2-722x368" border="0" width="275px" height="250px">
<h2 class="centered">Certified Remediation Contractors</h2>
</div>
</div>
<div class="flip-card-back">
<div class="vertical-center">
<ul>
<br />
<li style="font-size:15px;">Digital manifests save time, space, energy and money</li>
<li style="font-size:15px;">Improve trucker   management</li>
<li style="font-size:15px;">Easily post jobs in need of additional compliant     truckers</li>
</ul>
</div>
</div>
</div>
</div>
<!-- #remediation professionals -->
<div class="flip-card">
<div class="flip-card-inner">
<div class="flip-card-front">
<div class="container">
<img src="https://i.ibb.co/pWkWdMx/Services-Header-REM1.jpg" alt="Services-Header-REM1" border="0" width="275px" height="250px">
<h2 class="centered">Remediation Professionals<br />(i.e. LSRPs)</h2>
</div>
</div>
<div class="flip-card-back">
<div class="vertical-center">
<ul>
<li style="font-size:15px;">Minimize paperwork by receiving necessary documents in the cloud</li>
<li style="font-size:15px;">Streamlined updates to Regulatory Agencies</li>
</ul>
</div>
</div>
</div>
</div>
<!-- #material truckers -->
<div class="flip-card">
<div class="flip-card-inner">
<div class="flip-card-front">
<div class="container">
<img src="https://i.ibb.co/jktCcCh/construction-materials-being-transported-through-dump-truck-hauling-services.jpg" alt="construction-materials-being-transported-through-dump-truck-hauling-services" border="0" width="275px" height="250px">
<h2 class="centered">Material Truckers</h2>
</div>
</div>
<div class="flip-card-back">
<div class="vertical-center">
<br />
<ul>
<li style="font-size:15px;">Easier hiring process with ability to upload credentials and list references for new   jobs</li>
<li style="font-size:15px;">Eliminates need to call for or save paper manifest receipts</li>
<li style="font-size:15px;">Faster pay through direct invoicing</li>
<li style="font-size:15px;">Post available trucks for hire</li>
</ul>
</div>
</div>
</div>
</div>
<!-- #disposal facilities -->
<div class="flip-card">
<div class="flip-card-inner">
<div class="flip-card-front">
<div class="container">
<img src="https://i.ibb.co/BnwcyRy/construction-site-waste.jpg" alt="construction-site-waste" border="0" width="275px" height="250px">
<h2 class="centered">Disposal Facilities</h2>
</div>
</div>
<div class="flip-card-back">
<div class="vertical-center">
<br />
<ul>
<li style="font-size:15px;">Go green - no need to buy paper and printer cartridges   to print paper manifests</li>
<li style="font-size:15px;">Easier manifest delivery - assign electronically to truckers ahead of time, no need to sign paper manifests at origin and destination</li>
</ul>
</div>
</div>
</div>
</div>
<!-- #material testing labs -->
<div class="flip-card">
<div class="flip-card-inner">
<div class="flip-card-front">
<div class="container">
<img src="https://i.ibb.co/wckqzpt/R0cd7e9fd21b0182c7cfba5b6c278ab7a.png" alt="R0cd7e9fd21b0182c7cfba5b6c278ab7a" border="0" width="275px" height="250px">
<h2 class="centered">Material Testing Labs</h2>
</div>
</div>
<div class="flip-card-back">
<div class="vertical-center">
<ul>
<br />
<li style="font-size:15px;">Share results faster by integrating with TerraTrackr database</li>
<li style="font-size:15px;">Upload testing lab results <br /> and assign a unique project <br /> ID for easy organization</li>
</ul>
</div>
</div>
</div>
</div>

Answer: justify-content: center;
(You had a typo)

I ended up adding backface visibility to the image and it's all good!

Related

Center horizontally and vertically a div in a section and make each section fill the whole page when scrolling

I am trying to code a page where each section fills the whole page. And I am also trying to center vertically and horizontally the divs in each section.
I don't know if it's possible, if you guys can enlighten me it would be great.
I also would like to know if it's possible that, when I scroll it automatically goes to the next section. I don't know if it's clear enough to understand.
Here's the CSS :
.presta .container {
width: 100%;
position: relative;
}
.presta .h1 {
font-size: 80px;
font-weight: bold;
}
.presta card {
padding: 30px;
margin: 0 auto;
}
.logoPresta:hover {
transition: transform 0.3s ease-in;
transform: translateY(-10px);
}
.prestaShow {
text-align: center;
}
.wrapper {
min-height: 100%;
}
<div class="navbar ">
<div class="container flex">
<div class="logo" data-aos="fade-right">
<img src="images/linko_bg_transp.png" alt="" />
</div>
<nav data-aos="fade-in">
<ul>
<li>Accueil</li>
<li>Présentation</li>
<li>Nos Prestations</li>
<li>Nous contacter</li>
</ul>
</nav>
</div>
</div>
<section class="presta bg-light wrapper">
<div class="container">
<div class="text-center">
<h1>Nos domaines d'expertises</h1>
</div>
<div class="grid grid-4">
<div class="logoPresta card">
<img src="images/1.jpg" alt="">
</div>
<div class="logoPresta card">
<img src="images/2.jpg" alt="">
</div>
<div class="logoPresta card">
<img src="images/3.jpg" alt="">
</div>
<div class="logoPresta card">
<img src="images/4.jpg" alt="">
</div>
</div>
</div>
</section>
<section class="prestaShow wrapper">
<div class="container info">
<div class="text-center">
<h2>Informatique</h2>
</div>
<div class="textePresta card">
Conception & développement d'applications web
</div>
<div class="textePresta card">
Création & amélioration de bases de données
</div>
<div class="textePresta card">
Déploiement d'infrastructures réseaux
</div>
</div>
</section>
Here are the images of the page :
You can resize section to full page height by changing 100% to 100vh
Also, take a look at CSS section to see how to center wrappers' content (expand Code snippet to see differences).
UPD:
.snap-wrapper will help you to scroll full sections, take a look at Code snippet on full-screen.
.presta .container {
width: 100%;
position: relative;
}
.presta .h1 {
font-size: 80px;
font-weight: bold;
}
.presta card {
padding: 30px;
margin: 0 auto;
}
.logoPresta:hover {
transition: transform 0.3s ease-in;
transform: translateY(-10px);
}
.prestaShow {
text-align: center;
}
.wrapper {
/* centering wrapper content */
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
min-height: 100vh;
}
/* use .snap-wrapper to scroll page by full sections */
.snap-wrapper {
display: flex;
flex-direction: column;
flex-wrap: nowrap;
scroll-snap-type: y mandatory;
overflow: auto;
height: 100vh;
}
.snap-wrapper > .wrapper {
scroll-snap-align: center;
}
<link href="https://cdn.jsdelivr.net/npm/bootstrap#5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
<div class="navbar ">
<div class="container flex">
<div class="logo" data-aos="fade-right">
<img src="images/linko_bg_transp.png" alt="" />
</div>
<nav data-aos="fade-in">
<ul>
<li>Accueil</li>
<li>Présentation</li>
<li>Nos Prestations</li>
<li>Nous contacter</li>
</ul>
</nav>
</div>
</div>
<div class="snap-wrapper">
<section class="presta bg-light wrapper">
<div class="container">
<div class="text-center">
<h1>Nos domaines d'expertises</h1>
</div>
<div class="grid grid-4">
<div class="logoPresta card">
<img src="images/1.jpg" alt="">
</div>
<div class="logoPresta card">
<img src="images/2.jpg" alt="">
</div>
<div class="logoPresta card">
<img src="images/3.jpg" alt="">
</div>
<div class="logoPresta card">
<img src="images/4.jpg" alt="">
</div>
</div>
</div>
</section>
<section class="prestaShow wrapper">
<div class="container info">
<div class="text-center">
<h2>Informatique</h2>
</div>
<div class="textePresta card">
Conception & développement d'applications web
</div>
<div class="textePresta card">
Création & amélioration de bases de données
</div>
<div class="textePresta card">
Déploiement d'infrastructures réseaux
</div>
</div>
</section>
</div>

How to rotate first element wit flexbox and make it full-height?

I try to implement this graphic with HTML, CSS using flexbox:
Now, I have trouble with the left part. I don't know how to implement this -90 degrees rotated element. The right part (all elements that are horizontally aligned) is not the problem.
Here is what I have so far:
.container {
max-width: 1176px;
width: 100%!important;
margin: 0 auto!important;
float: none!important;
z-index: 1;
}
.pt {
padding-top: 3.5rem;
/* 56px */
}
.pb {
padding-bottom: 3rem;
/* 48px */
}
.ptms {
padding-top: 1.5rem;
/* 24px */
}
.full-width {
width: 100%;
padding: 0 1.5rem;
}
.three-col {
width: 33.3333334%;
padding: 0 1.5rem;
}
.platform-container,
.platform-card-container {
display: flex;
}
.platform-card-container .three-col,
.platform-card-container .full-width {
padding: 0 .75rem;
}
.platform-card-container a {
text-decoration: none;
}
.platform-card,
.platform-card-first {
border-radius: .5rem;
box-shadow: 0 .25rem .75rem 0 rgba(27, 27, 27, 0.24);
display: flex;
height: 100%;
}
.platform-card {
align-items: center;
}
.platform-card-first {
}
.platform-card-icon {
padding: .75rem;
border-radius: 50%;
background-color: #f5f5f5;
width: 3.5rem;
height: 3.5rem;
min-width: 3.5rem;
}
.platform-card-text {
margin-left: 1rem;
}
.platform-card-text-title {
margin-bottom: .5rem;
color: #1b1b1b;
}
.platform-card-text-desc {
color: #007095;
}
<div class="container platform-container">
<div>
<div class="pt platform-card-container">
<div class="full-width">
<a href="">
<div class="platform-card-first">
<div class="platform-card-icon">
<img src="img/icons/axonivy-website-icon-technology-3d-printing-darkblue.svg">
</div>
<div class="platform-card-text">
<h4 class="platform-card-text-title">Open Architecture</h4>
<div class="platform-card-text-desc">Extend systems as required</div>
</div>
</div>
</a>
</div>
</div>
</div>
<div>
<div class="pt platform-card-container">
<div class="three-col">
<a href="">
<div class="platform-card">
<div class="platform-card-icon">
<img src="img/icons/axonivy-website-icon-design-ruler-triangle-darkblue.svg">
</div>
<div class="platform-card-text">
<h4 class="platform-card-text-title">User Interface</h4>
<div class="platform-card-text-desc">Modern front-end technologies</div>
</div>
</div>
</a>
</div>
<div class="three-col">
<a href="">
<div class="platform-card">
<div class="platform-card-icon">
<img src="img/icons/axonivy-website-icon-mobile-phone-location-darkblue.svg">
</div>
<div class="platform-card-text">
<h4 class="platform-card-text-title">Intelligent Mobility</h4>
<div class="platform-card-text-desc">Mobile and offline access</div>
</div>
</div>
</a>
</div>
<div class="three-col">
<a href="">
<div class="platform-card">
<div class="platform-card-icon">
<img src="img/icons/axonivy-website-icon-network-monitor-team-darkblue.svg">
</div>
<div class="platform-card-text">
<h4 class="platform-card-text-title">Social Collaboration</h4>
<div class="platform-card-text-desc">Efficient teamwork</div>
</div>
</div>
</a>
</div>
</div>
<div class="ptms platform-card-container">
<div class="full-width">
<a href="">
<div class="platform-card">
<div class="platform-card-icon">
<img src="img/icons/axonivy-website-icon-toys-lego-darkblue.svg">
</div>
<div class="platform-card-text">
<h4 class="platform-card-text-title">Low-Code Suppport</h4>
<div class="platform-card-text-desc">Processes without programming</div>
</div>
</div>
</a>
</div>
</div>
<div class="ptms platform-card-container">
<div class="three-col">
<a href="">
<div class="platform-card">
<div class="platform-card-icon">
<img src="img/icons/axonivy-website-icon-multimedia-shuffle-darkblue.svg">
</div>
<div class="platform-card-text">
<h4 class="platform-card-text-title">Business Rule Engine</h4>
<div class="platform-card-text-desc">Intelligent decision making</div>
</div>
</div>
</a>
</div>
<div class="three-col">
<a href="">
<div class="platform-card">
<div class="platform-card-icon">
<img src="img/icons/axonivy-website-icon-programming-module-puzzle-darkblue.svg">
</div>
<div class="platform-card-text">
<h4 class="platform-card-text-title">Integration</h4>
<div class="platform-card-text-desc">Standard connectors and more</div>
</div>
</div>
</a>
</div>
<div class="three-col">
<a href="">
<div class="platform-card">
<div class="platform-card-icon">
<img src="img/icons/axonivy-website-icon-transportation-road-sign-darkblue.svg">
</div>
<div class="platform-card-text">
<h4 class="platform-card-text-title">Adaptive Case Management</h4>
<div class="platform-card-text-desc">Making processes flexible</div>
</div>
</div>
</a>
</div>
</div>
<div class="ptms platform-card-container">
<div class="full-width">
<a href="">
<div class="platform-card">
<div class="platform-card-icon">
<img src="img/icons/axonivy-website-icon-interface-settings-cog-double-darkblue.svg">
</div>
<div class="platform-card-text">
<h4 class="platform-card-text-title">Process Engine</h4>
<div class="platform-card-text-desc">Powerful process automation</div>
</div>
</div>
</a>
</div>
</div>
<div class="ptms platform-card-container">
<div class="full-width">
<a href="">
<div class="platform-card">
<div class="platform-card-icon">
<img src="img/icons/axonivy-website-icon-work-presentation-projector-screen-darkblue.svg">
</div>
<div class="platform-card-text">
<h4 class="platform-card-text-title">Modern Runtime Platform</h4>
<div class="platform-card-text-desc">Environment with container support</div>
</div>
</div>
</a>
</div>
</div>
</div>
Does anyone have a hint on how I should proceed?
I believe these styles are what you want:
text-align: right;
writing-mode: vertical-rl;
transform: rotate(180deg);
text-orientation: mixed;
https://jsfiddle.net/aycq2v8u/
edit: I noticed that the height still wasn't right. (BTW, display:grid makes this sort of thing easier). here's a revision with that fixed as well. although, this does require either ridiculous looking selectors or changes to the html, which I have done here: https://jsfiddle.net/rxgbo4a9/
changes required:
the card container of the first card (that needs to be full height) needs to be different. since it is on the side and generally different content, I marked it as an aside:
<aside class="pt platform-card-container">
then, with that, using minimal changes to your css we get the desired result:
aside.platform-card-container {
height:100%
}
aside.platform-card-container a {
display: flex;
height: 100%
}
note that specifying height instead of using flexbox is not ideal. however, since all your code makes the same mistake, I think you minimize technical debt to keep all the problems of the same type .. ie, keep using height until you are ready to remove it generally.

Make group of flip boxes align on mobile

I don't really have any background of HTML or CSS. I've been figuring out how to change existing codes to help make sections of a website. The only issue is that I can't make it mobile-friendly. I made a code to create 8 flip boxes that work when you visit the website on a computer. However, they don't work so well on mobile. I don't really know what I'm doing, but is there anyway I can align the 8 boxes in one column for mobile use and use touch to make them flip? Thanks!
<!DOCTYPE html>
<html>
<head>
<link href=https://fonts.googleapis.com/css?family=Montserrat:400,500,700,900|Ubuntu:400,500,700 rel="stylesheet">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body {
font-family: 'Montserrat', sans-serif;
font-weight: 300; /* black */
}
.grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
justify-items: center;
align-items: center;
grid-gap: 8px;
}
.flip-card {
background-color: transparent;
width: 275px;
height: 250px;
perspective: 1000px;
}
.flip-card-inner {
border-style: hidden;
position: relative;
width: 100%;
height: 100%;
text-align: left;
transition: transform 0.6s;
transform-style: preserve-3d;
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);
}
.flip-card:hover .flip-card-inner {
transform: rotateY(180deg);
}
.flip-card-front,
.flip-card-back {
position: absolute;
width: 100%;
height: 100%;
backface-visibility: hidden;
}
.flip-card-front {
background-color: white;
color: #152939;
text-align: center;
}
.flip-card-back {
background-color: white;
color: black;
transform: rotateY(180deg);
line-height: 1.25;
}
li{
margin: 10px 0;
}
.vertical-center {
margin: 0;
position: absolute;
top: 45%;
-ms-transform: translateY(-50%);
transform: translateY(-50%);
}
</style>
</head>
<body>
<section id="team">
<div class="container">
<div class="grid">
<!-- #stakeholder benefits -->
<!-- #regulatory agencies -->
<div class="flip-card">
<div class="flip-card-inner">
<div class="flip-card-front">
<h2>Regulatory<br />Agencies</h2>
<img src=https://i.ibb.co/t8ghC7J/Regulatory-Agencies.png alt="Regulatory-Agencies" width= "110">
</div>
<div class="flip-card-back">
<div class="vertical-center">
<ul>
<br />
<li style="font-size:15px;">Real-time monitoring & auditing</li>
<li style="font-size:15px;">No need to go on-site to   review necessary paperwork</li>
<li style="font-size:15px;">Access to digital database on contamination levels, origin and destination(s)</li>
</ul>
</div>
</div>
</div>
</div>
<!-- #generators -->
<div class="flip-card">
<div class="flip-card-inner">
<div class="flip-card-front">
<h2>Generators<br />   </h2>
<img src=https://i.ibb.co/pj0M0cZ/Generator.png alt="Generator" width= "110">
</div>
<div class="flip-card-back">
<div class="vertical-center">
<ul>
<br />
<li style="font-size:15px;">Access to real-time project updates</li>
<li style="font-size:15px;">Limit exposure to regulatory penalties</li>
<li style="font-size:15px;">Accurately forecast and   reduce costs with start-to-finish project insights</li>
<li style="font-size:15px;">Cost-effective</li>
</div>
</div>
</div>
</div>
<!-- #environmental consultants -->
<div class="flip-card">
<div class="flip-card-inner">
<div class="flip-card-front">
<h2>Environmental Consultants</h2>
<img src=https://i.ibb.co/wQsdBgk/Environmental-Consultants.png alt="Environmental-Consultants" width="110">
</div>
<div class="flip-card-back">
<div class="vertical-center">
<br />
<ul>
<li style="font-size:15px;">Easier vetting to review credentials of necessary companies</li>
<li style="font-size:15px;">Single and centralized repository to access all   relevant documents</li>
</ul>
</div>
</div>
</div>
</div>
<!-- #remediation consultants -->
<div class="flip-card">
<div class="flip-card-inner">
<div class="flip-card-front">
<h2>Certified Remediation Contractors</h2>
<img src=https://i.ibb.co/tBczP7M/Certified-Remediation-Contractors.png alt="Certified-Remediation-Contractors" width= "100">
</div>
<div class="flip-card-back">
<div class="vertical-center">
<ul>
<br />
<li style="font-size:15px;">Digital manifests save time, space, energy and money</li>
<li style="font-size:15px;">Improve trucker   management</li>
<li style="font-size:15px;">Easily post jobs in need of additional compliant     truckers</li>
</ul>
</div>
</div>
</div>
</div>
<!-- #remediation professionals -->
<div class="flip-card">
<div class="flip-card-inner">
<div class="flip-card-front">
<h2>Remediation Professionals<br />(i.e. LSRPs)</h2>
<img src=https://i.ibb.co/rm6KSMZ/Remediation-Professionals.png alt="Remediation-Professionals" width="100">
</div>
<div class="flip-card-back">
<div class="vertical-center">
<ul>
<li style="font-size:15px;">Minimize paperwork by receiving necessary documents in the cloud</li>
<li style="font-size:15px;">Streamlined updates to Regulatory Agencies</li>
</ul>
</div>
</div>
</div>
</div>
<!-- #material truckers -->
<div class="flip-card">
<div class="flip-card-inner">
<div class="flip-card-front">
<h2>Material Truckers <br />   </h2>
<img src=https://i.ibb.co/xGdP24b/Truckers.png alt="Truckers" width= "120">
</div>
<div class="flip-card-back">
<div class="vertical-center">
<br />
<ul>
<li style="font-size:15px;">Easier hiring process with ability to upload credentials and list references for new   jobs</li>
<li style="font-size:15px;">Eliminates need to call for or save paper manifest receipts</li>
<li style="font-size:15px;">Faster pay through direct invoicing</li>
<li style="font-size:15px;">Post available trucks for hire</li>
</ul>
</div>
</div>
</div>
</div>
<!-- #disposal facilities -->
<div class="flip-card">
<div class="flip-card-inner">
<div class="flip-card-front">
<h2>Disposal Facilities <br />   </h2>
<img src=https://i.ibb.co/4KCPWxB/Disposal-Facilities.png alt="Disposal-Facilities" width="110">
</div>
<div class="flip-card-back">
<div class="vertical-center">
<br />
<ul>
<li style="font-size:15px;">Go green - no need to buy paper and printer cartridges   to print paper manifests</li>
<li style="font-size:15px;">Easier manifest delivery - assign electronically to truckers ahead of time, no need to sign paper manifests at origin and destination</li>
</ul>
</div>
</div>
</div>
</div>
<!-- #material testing labs -->
<div class="flip-card">
<div class="flip-card-inner">
<div class="flip-card-front">
<h2>Material Testing<br />Labs</h2>
<img src=https://i.ibb.co/t8xWnfv/Material-Testing-Labs.png alt="Material-Testing-Labs" width="110">
</div>
<div class="flip-card-back">
<div class="vertical-center">
<ul>
<br />
<li style="font-size:15px;">Share results faster by integrating with TerraTrackr database</li>
<li style="font-size:15px;">Upload testing lab results   and assign a unique project   ID for easy organization</li>
</ul>
</div>
</div>
</div>
</div>
</body>
</html>
For making it responsive to mobile use media queries: https://www.w3schools.com/css/css_rwd_mediaqueries.asp
Also, hover on mobile acts like a touch input so I don't think you have a problem with that
<!DOCTYPE html>
<html>
<head>
<link href=https://fonts.googleapis.com/css?family=Montserrat:400,500,700,900|Ubuntu:400,500,700 rel="stylesheet">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body {
font-family: 'Montserrat', sans-serif;
font-weight: 300; /* black */
}
.grid {
display: grid;
width:auto;
margin:0 auto;
grid-template-columns: repeat(2, 1fr);
justify-items: center;
align-items: center;
grid-gap: 8px;
}
#media only screen and (min-width: 768px){ /*Desktop*/
.grid {
grid-template-columns: repeat(4, 1fr);
}
}
.flip-card {
background-color: transparent;
width: 275px;
height: 250px;
perspective: 1000px;
}
.flip-card-inner {
border-style: hidden;
position: relative;
width: 100%;
height: 100%;
text-align: left;
transition: transform 0.6s;
transform-style: preserve-3d;
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);
}
.flip-card:hover .flip-card-inner {
transform: rotateY(180deg);
}
.flip-card-front,
.flip-card-back {
position: absolute;
width: 100%;
height: 100%;
backface-visibility: hidden;
}
.flip-card-front {
background-color: white;
color: #152939;
text-align: center;
}
.flip-card-back {
background-color: white;
color: black;
transform: rotateY(180deg);
line-height: 1.25;
}
li{
margin: 10px 0;
}
.vertical-center {
margin: 0;
position: absolute;
top: 45%;
-ms-transform: translateY(-50%);
transform: translateY(-50%);
}
</style>
</head>
<body>
<section id="team">
<div class="container">
<div class="grid">
<!-- #stakeholder benefits -->
<!-- #regulatory agencies -->
<div class="flip-card">
<div class="flip-card-inner">
<div class="flip-card-front">
<h2>Regulatory<br />Agencies</h2>
<img src=https://i.ibb.co/t8ghC7J/Regulatory-Agencies.png alt="Regulatory-Agencies" width= "110">
</div>
<div class="flip-card-back">
<div class="vertical-center">
<ul>
<br />
<li style="font-size:15px;">Real-time monitoring & auditing</li>
<li style="font-size:15px;">No need to go on-site to   review necessary paperwork</li>
<li style="font-size:15px;">Access to digital database on contamination levels, origin and destination(s)</li>
</ul>
</div>
</div>
</div>
</div>
<!-- #generators -->
<div class="flip-card">
<div class="flip-card-inner">
<div class="flip-card-front">
<h2>Generators<br />   </h2>
<img src=https://i.ibb.co/pj0M0cZ/Generator.png alt="Generator" width= "110">
</div>
<div class="flip-card-back">
<div class="vertical-center">
<ul>
<br />
<li style="font-size:15px;">Access to real-time project updates</li>
<li style="font-size:15px;">Limit exposure to regulatory penalties</li>
<li style="font-size:15px;">Accurately forecast and   reduce costs with start-to-finish project insights</li>
<li style="font-size:15px;">Cost-effective</li>
</div>
</div>
</div>
</div>
<!-- #environmental consultants -->
<div class="flip-card">
<div class="flip-card-inner">
<div class="flip-card-front">
<h2>Environmental Consultants</h2>
<img src=https://i.ibb.co/wQsdBgk/Environmental-Consultants.png alt="Environmental-Consultants" width="110">
</div>
<div class="flip-card-back">
<div class="vertical-center">
<br />
<ul>
<li style="font-size:15px;">Easier vetting to review credentials of necessary companies</li>
<li style="font-size:15px;">Single and centralized repository to access all   relevant documents</li>
</ul>
</div>
</div>
</div>
</div>
<!-- #remediation consultants -->
<div class="flip-card">
<div class="flip-card-inner">
<div class="flip-card-front">
<h2>Certified Remediation Contractors</h2>
<img src=https://i.ibb.co/tBczP7M/Certified-Remediation-Contractors.png alt="Certified-Remediation-Contractors" width= "100">
</div>
<div class="flip-card-back">
<div class="vertical-center">
<ul>
<br />
<li style="font-size:15px;">Digital manifests save time, space, energy and money</li>
<li style="font-size:15px;">Improve trucker   management</li>
<li style="font-size:15px;">Easily post jobs in need of additional compliant     truckers</li>
</ul>
</div>
</div>
</div>
</div>
<!-- #remediation professionals -->
<div class="flip-card">
<div class="flip-card-inner">
<div class="flip-card-front">
<h2>Remediation Professionals<br />(i.e. LSRPs)</h2>
<img src=https://i.ibb.co/rm6KSMZ/Remediation-Professionals.png alt="Remediation-Professionals" width="100">
</div>
<div class="flip-card-back">
<div class="vertical-center">
<ul>
<li style="font-size:15px;">Minimize paperwork by receiving necessary documents in the cloud</li>
<li style="font-size:15px;">Streamlined updates to Regulatory Agencies</li>
</ul>
</div>
</div>
</div>
</div>
<!-- #material truckers -->
<div class="flip-card">
<div class="flip-card-inner">
<div class="flip-card-front">
<h2>Material Truckers <br />   </h2>
<img src=https://i.ibb.co/xGdP24b/Truckers.png alt="Truckers" width= "120">
</div>
<div class="flip-card-back">
<div class="vertical-center">
<br />
<ul>
<li style="font-size:15px;">Easier hiring process with ability to upload credentials and list references for new   jobs</li>
<li style="font-size:15px;">Eliminates need to call for or save paper manifest receipts</li>
<li style="font-size:15px;">Faster pay through direct invoicing</li>
<li style="font-size:15px;">Post available trucks for hire</li>
</ul>
</div>
</div>
</div>
</div>
<!-- #disposal facilities -->
<div class="flip-card">
<div class="flip-card-inner">
<div class="flip-card-front">
<h2>Disposal Facilities <br />   </h2>
<img src=https://i.ibb.co/4KCPWxB/Disposal-Facilities.png alt="Disposal-Facilities" width="110">
</div>
<div class="flip-card-back">
<div class="vertical-center">
<br />
<ul>
<li style="font-size:15px;">Go green - no need to buy paper and printer cartridges   to print paper manifests</li>
<li style="font-size:15px;">Easier manifest delivery - assign electronically to truckers ahead of time, no need to sign paper manifests at origin and destination</li>
</ul>
</div>
</div>
</div>
</div>
<!-- #material testing labs -->
<div class="flip-card">
<div class="flip-card-inner">
<div class="flip-card-front">
<h2>Material Testing<br />Labs</h2>
<img src=https://i.ibb.co/t8xWnfv/Material-Testing-Labs.png alt="Material-Testing-Labs" width="110">
</div>
<div class="flip-card-back">
<div class="vertical-center">
<ul>
<br />
<li style="font-size:15px;">Share results faster by integrating with TerraTrackr database</li>
<li style="font-size:15px;">Upload testing lab results   and assign a unique project   ID for easy organization</li>
</ul>
</div>
</div>
</div>
</div>
</body>
</html>
In order to make it responsive for all devices you can use display flex property.
Just change the your grid class as below.
.grid {
align-items: center;
flex-direction: row;
display: flex;
justify-content: center;
gap: 8px;
flex-wrap: wrap;
}

Overlay and Hover Responsiveness

I created an image overlay effect for my portfolio page complete with custom CSS. It is working perfectly fine on a desktop browser but it's completely not working for mobiles. Can anyone suggest what I can do here? How can I make this responsive?
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<style>
.flex-container {
position: inherit;
display: flex;
}
.img1-wrap {
position: relative;
overflow: hidden;
width: 280px;
padding: 50px;
}
.image {
width: 2000px;
}
.overlay {
display: block;
position: sticky;
bottom: 0;
left: 0;
right: 0;
background-color: #ad0909;
overflow: hidden;
height: 0%;
transition: .5s ease;
}
.img1-wrap:hover .overlay {
height: 100%;
}
.text {
color: white;
font-size: 12px;
font-family: Reggae One;
position: absolute;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
text-align: center;
}
</style>
<link href='https://fonts.googleapis.com/css?family=Reggae One' rel='stylesheet'>
</head>
<body>
<div class="flex-container">
<div class="img1-wrap">
<img src="/s/BBBook" alt="Avatar" class="image">
<div class="overlay">
<div class="text">BBBook is a community-based reading platform that facilitates collaborative study for university and school students.</div>
</div>
</div>
<div class="img1-wrap">
<a href="https://www.cash.live/">
<img src="/s/Cash-Live-Logo.png" alt="Avatar" class="image">
<div class="overlay">
<div class="text">Cash Live is a live-streamed, free to enter poker game show featuring daily tournaments where players compete for cash.</div>
</div>
</a>
</div>
<div class="img1-wrap">
<a href="https://codeblugames.com/">
<img src="/s/CBG" alt="Avatar" class="image">
<div class="overlay">
<div class="text">Code Blue Games is developing 6Degrees, a Third Person Action Adventure/Tower Defense game.</div>
</div>
</a>
</div>
<div class="img1-wrap">
<img src="/s/Acces-Job" alt="Avatar" class="image">
<div class="overlay">
<div class="text">Accessible Jobs is developing an online job portal focused on helping people with disabilities find accessible work.</div>
</div>
</div>
</div>
<div class="flex-container">
<div class="img1-wrap">
<a href="https://dineeasy.ca/">
<img src="/s/dinenew" alt="Avatar" class="image">
<div class="overlay">
<div class="text">DineEasy is a one-stop platform for powering the digital infrastructure for restaurants, cafes, and hotels.</div>
</div>
</a>
</div>
<div class="img1-wrap">
<a href="https://www.gamejobs.ninja/" target="blank">
<img src="/s/gamesninja.png" alt="Avatar" class="image">
<div class="overlay">
<div class="text">GameJobs.Ninja is a recruitment platform focused on the video games industry.</div>
</div>
</a>
</div>
<div class="img1-wrap">
<a href="https://www.myhubly.com/" target="blank">
<img src="/s/hubli" alt="Avatar" class="image">
<div class="overlay">
<div class="text">Hubly is building technology to power the future of financial planning and advice.</div>
</div>
</a>
</div>
<div class="img1-wrap">
<a href="https://www.ludare.com/" target="blank">
<img src="/s/Ludare" alt="Avatar" class="image">
<div class="overlay">
<div class="text">Ludare Games Group is a publisher of free-to-play mobile games featuring top-tier licensed intellectual properties.</div>
</div>
</a>
</div>
</div>
<div class="flex-container">
<div class="img1-wrap">
<a href="https://pepper.gg/" target="blank">
<img src="/s/pepac.png" alt="Avatar" class="image">
<div class="overlay">
<div class="text">PEPPER lets gamers and organizers discover and create local and online events for cash prizes. Acquired by TGS Esports.</div>
</div>
</a>
</div>
<div class="img1-wrap">
<a href="https://storiiitime.com/" target="blank">
<img src="/s/StoriiTime" alt="Avatar" class="image">
<div class="overlay">
<div class="text">StoriiiTime empowers online influencers to earn more with less work through its no-code narrative game templates. </div>
</div>
</a>
</div>
<div class="img1-wrap">
<img src="/s/Startup" alt="Avatar" class="image">
<div class="overlay">
<div class="text">Startup Arena is building a model for co-working startup spaces in a post-COVID world.</div>
</div>
</div>
<div class="img1-wrap">
<img src="/s/SuperCommerce" alt="Avatar" class="image">
<div class="overlay">
<div class="text">SuperCommerce is a buyer, operator, and scaler of ecommerce websites.
</div>
</div>
</div>
</div>
<div class="flex-container">
<div class="img1-wrap">
<img src="/s/v2ac.png" alt="Avatar" class="image">
<a href="https://victorysquare.com/" target="blank">
<div class="overlay">
<div class="text">V2 Games is a developer and publisher of casual mobile games. Acquired by Victory Square Technologies.
</div>
</div>
</a>
</div>
<div class="img1-wrap">
<img src="/s/Vetsie" alt="Avatar" class="image">
<a href="https://www.vetsie.com/" target="blank">
<div class="overlay">
<div class="text">Vetsie is making veterinary care more accessible by leveraging innovative technology to transform pet care.</div>
</div>
</a>
</div>
</div>
</body>
While avoiding detailed suggestions that would perhaps get too subjective, one could greatly improve the responsiveness of the layout by doing the following:
Remove all but the first .flex-container div. Instead, put all .img1-wrap elements within the first (and only) .flex-container.
Add flex-wrap: wrap; to the CSS rules for the .flex-container element.
Add justify-content: center; to the CSS rules for the .flex-container element.
Change the width CSS property from 280 to 270.
Further improvement could certainly be made, but the above will be adequate in terms of keeping the content presentable at any width, and should serve as a basis for further customization on your part. In the above suggestions, I also did not address browser-specific prefixing for flex-related rules, which you can investigate further, if interested.

Item moving around when window resized

See Umbrella image in images:
Full-size window:
.
Reduced (ideal placement):
I would like to have my umbrella image in the centre of the screen no matter the size of the window.
It works from the point where the window shrinks and works in mobile view too.
I've tried various methods but it doesn't seem to be working, any tips would be greatly appreciated.
Here is my code:
HTML
<div class="wrapper">
<div class="page2">
<h2>Blog</h2>
<div class="wrap">
<div class="card">
<a href="welcome.html">
<img class="card-img" src="str3.jpg">
</a>
<div class="card-text">
<h3>Welcome</h3>
<p>Website Launch and my First Project</p>
</div>
</div>
<div class="card">
<a href="blog.html">
<img class="card-img" src="steve_roe_kyoto.jpg">
</a>
<div class="card-text">
<h3> Kyoto</h3>
<p>My Recent Trip</p>
</div>
</div>
<div class="card">
<a href="best.html">
<img class="card-img" src="str4.jpg">
</a>
<div class="card-text">
<h3>Best of 2018</h3>
<p>Neon Goodness from Last Year</p>
</div>
</div>
</div>
<div class="page3">
<footer>
<div class="umbrella_icon">
<img src="umbrella-02.png">
</div>
<div class="logo_footer">Steve Roe</div>
<div class="footer_menu">
<ul class="ul_footer">
<li>Work With Me</li>
<li>
Contact</li>
</ul>
</div>
</footer>
</div>
</div>
</div>
CSS
.page2{
width: 100%;
margin: 0 auto;
margin-top: 20px;
height: 100%;
}
//cards
.wrap{
width:960px;
margin:auto;
margin-top: 100px;
}
.card{
box-shadow: 0 4px 8px 0 rgba(0,0,0,0.15);
transition: 0.4s;
width: 300px;
text-align: center;
font-size: 16px;
float:left;
margin:10px;
text-decoration: none;
}
.page3{
margin: 20px;
margin-top: 20px;
height: 30%;
}
.umbrella_icon {
text-align: center;
}
.footer {
z-index: 1000;
width: 960px;
margin: 0 auto;
}
Use dispaly:flex to .wrap
See working code
.page2{
width: 100%;
margin: 0 auto;
margin-top: 20px;
height: 100%;
}
.wrap{
margin: auto;
margin-top: 100px;
display: flex;
}
.card{
box-shadow: 0 4px 8px 0 rgba(0,0,0,0.15);
transition: 0.4s;
width: 300px;
text-align: center;
font-size: 16px;
float:left;
margin:10px;
text-decoration: none;
}
.page3{
margin: 20px;
margin-top: 20px;
height: 30%;
}
.umbrella_icon {
text-align: center;
}
.footer {
z-index: 1000;
width: 960px;
margin: 0 auto;
}
<div class="wrapper">
<div class="page2">
<h2>Blog</h2>
<div class="wrap">
<div class="card">
<a href="welcome.html">
<img class="card-img" src="str3.jpg">
</a>
<div class="card-text">
<h3>Welcome</h3>
<p>Website Launch and my First Project</p>
</div>
</div>
<div class="card">
<a href="blog.html">
<img class="card-img" src="steve_roe_kyoto.jpg">
</a>
<div class="card-text">
<h3> Kyoto</h3>
<p>My Recent Trip</p>
</div>
</div>
<div class="card">
<a href="best.html">
<img class="card-img" src="str4.jpg">
</a>
<div class="card-text">
<h3>Best of 2018</h3>
<p>Neon Goodness from Last Year</p>
</div>
</div>
</div>
<div class="page3">
<footer>
<div class="umbrella_icon">
<img src="umbrella-02.png" alt="umbrella">
</div>
<div class="logo_footer">Steve Roe</div>
<div class="footer_menu">
<ul class="ul_footer">
<li>Work With Me</li>
<li>
Contact</li>
</ul>
</div>
</footer>
</div>
</div>
</div>
End The page 2 div before starting page 3 div.
Change the page3 css to
.page3{
margin: 50vh 50vw;
}
<h2>Blog</h2>
<div class="wrap">
<div class="card">
<a href="welcome.html">
<img class="card-img" src="str3.jpg">
</a>
<div class="card-text">
<h3>Welcome</h3>
<p>Website Launch and my First Project</p>
</div>
</div>
<div class="card">
<a href="blog.html">
<img class="card-img" src="steve_roe_kyoto.jpg">
</a>
<div class="card-text">
<h3> Kyoto</h3>
<p>My Recent Trip</p>
</div>
</div>
<div class="card">
<a href="best.html">
<img class="card-img" src="str4.jpg">
</a>
<div class="card-text">
<h3>Best of 2018</h3>
<p>Neon Goodness from Last Year</p>
</div>
</div>
</div>
</div>
<div class="page3">
<footer>
<div class="umbrella_icon">
<img src="umbrella-02.png" alt="umbrella Here">
</div>
<div class="logo_footer">Steve Roe</div>
<div class="footer_menu">
<ul class="ul_footer">
<li>Work With Me</li>
<li>
Contact</li>
</ul>
</div>
</footer>
</div>
Use flex for .wrap like this :
.wrap{
width:960px;
margin:auto;
margin-top: 100px;
display: flex;
justify-content: center;
}
this code make image in center horizontally.