Reputation: 133
I am trying to hide a column from my Grid with a media query. I would like to hide the first column:
#grid-services {
display: grid;
grid-template-columns: 1fr 4fr;
grid-template-rows: 1fr 1fr 1fr;
grid-template-areas:
'iconp dicribep'
'iconf dicribef'
'iconq dicribeq';
grid-gap: 10px;
}
@media (max-width: 777px) {
#grid-services {
display: grid;
grid-template-columns: 1fr;
grid-template-rows: 1fr 1fr 1fr;
grid-template-areas:
'dicribep'
'dicribef'
'dicribeq';
grid-gap: 10px;
Why is it not working? Below is the full code:
.iconp {
display: flex;
justify-content: center;
align-items: center;
font-size: 4rem;
/* grid-column: 1 / 2;
grid-row: 1 / 2; */
grid-area: 'iconp';
}
.iconf {
display: flex;
justify-content: center;
align-items: center;
font-size: 4rem;
/* grid-column: 1 / 2;
grid-row: 2 / 3; */
grid-area: 'iconf';
}
.iconq {
display: flex;
justify-content: center;
align-items: center;
font-size: 4rem;
/* grid-column: 1 / 2;
grid-row: 3 / 4; */
grid-area: 'iconq';
}
.dicribep {
display: flex;
flex-direction: column;
justify-content: center;
align-items: flex-start;
width: 100%;
height: 100px;
/* grid-column: 2 / 3;
grid-row: 1 / 2; */
grid-area: 'dicribep';
}
.dicribef {
display: flex;
flex-direction: column;
justify-content: center;
align-items: flex-start;
width: 100%;
height: 100px;
/* grid-column: 2 / 3;
grid-row: 2 / 3; */
grid-area: 'dicribef';
}
.dicribeq {
display: flex;
flex-direction: column;
justify-content: center;
align-items: flex-start;
width: 100%;
height: 100px;
/* grid-column: 2 / 3;
grid-row: 3 / 4; */
grid-area: 'dicribeq';
}
#grid-services {
display: grid;
grid-template-columns: 1fr 4fr;
grid-template-rows: 1fr 1fr 1fr;
grid-template-areas: 'iconp dicribep' 'iconf dicribef' 'iconq dicribeq';
grid-gap: 10px;
}
@media (max-width: 777px) {
#grid-services {
display: grid;
grid-template-columns: 1fr;
grid-template-rows: 1fr 1fr 1fr;
grid-template-areas: 'dicribep' 'dicribef' 'dicribeq';
grid-gap: 10px;
}
}
#grid-prices {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
grid-template-rows: 1fr;
grid-template-areas: 'tenor' 'bass' 'valve';
gap: 18px;
}
@media (max-width: 777px) {
#grid-prices {
display: grid;
grid-template-columns: 1fr;
grid-template-rows: 1fr 1fr 1fr;
gap: 18px;
grid-template-areas: 'tenor' 'bass' 'valve';
max-width: 250px;
margin: auto;
}
}
<script src="https://kit.fontawesome.com/4d720cea97.js" crossorigin="anonymous"></script>
<section class="feature" id="feature">
<div id="grid-services">
<div class="iconp"><i class="fas fa-ambulance"></i></div>
<div class="dicribep">
<h2>Premium Materials</h2>
<p>
Our trombones use the shiniest brass which is sourced locally. This will increase the longevity of your purchase.
</p>
</div>
<div class="iconf"><i class="fas fa-baby-carriage"></i></div>
<div class="dicribef">
<h2>Fast Shipping</h2>
<p>
We make sure you recieve your trombone as soon as we have finished making it. We also provide free returns if you are not satisfied.
</p>
</div>
<div class="iconq"><i class="fas fa-car"></i></div>
<div class="dicribeq">
<h2>Quality Assurance</h2>
<p>
For every purchase you make, we will ensure there are no damages or faults and we will check and test the pitch of your instrument.
</p>
</div>
</div>
</section>
I would like when the screen is smaller than 777px, the first column of the grid to disappear.
Upvotes: 1
Views: 441
Reputation: 7295
Your code is correct, except you need to remove the quotes around grid-area
. (See below).
#how {
width: 70vw;
background-color: rgb(253, 253, 253);
margin: auto;
text-align: center;
}
.iconp {
display: flex;
justify-content: center;
align-items: center;
font-size: 4rem;
/* grid-column: 1 / 2;
grid-row: 1 / 2; */
grid-area: iconp;
}
.iconf {
display: flex;
justify-content: center;
align-items: center;
font-size: 4rem;
/* grid-column: 1 / 2;
grid-row: 2 / 3; */
grid-area: iconf;
}
.iconq {
display: flex;
justify-content: center;
align-items: center;
font-size: 4rem;
/* grid-column: 1 / 2;
grid-row: 3 / 4; */
grid-area: iconq;
}
.dicribep {
display: flex;
flex-direction: column;
justify-content: center;
align-items: flex-start;
width: 100%;
height: 100px;
/* grid-column: 2 / 3;
grid-row: 1 / 2; */
grid-area: dicribep;
}
.dicribef {
display: flex;
flex-direction: column;
justify-content: center;
align-items: flex-start;
width: 100%;
height: 100px;
/* grid-column: 2 / 3;
grid-row: 2 / 3; */
grid-area: dicribef;
}
.dicribeq {
display: flex;
flex-direction: column;
justify-content: center;
align-items: flex-start;
width: 100%;
height: 100px;
/* grid-column: 2 / 3;
grid-row: 3 / 4; */
grid-area: dicribeq;
}
#grid-services {
display: grid;
grid-template-columns: 1fr 4fr;
grid-template-rows: 1fr 1fr 1fr;
grid-template-areas: 'iconp dicribep' 'iconf dicribef' 'iconq dicribeq';
grid-gap: 10px;
}
@media (max-width: 777px) {
#grid-services {
display: grid;
grid-template-columns: 1fr;
grid-template-rows: 1fr 1fr 1fr;
grid-template-areas: 'dicribep' 'dicribef' 'dicribeq';
grid-gap: 10px;
}
}
<script src="https://kit.fontawesome.com/4d720cea97.js" crossorigin="anonymous"></script>
<section class="feature" id="feature">
<div id="grid-services">
<div class="iconp"><i class="fas fa-ambulance"></i></div>
<div class="dicribep">
<h2>Premium Materials</h2>
<p>
Our trombones use the shiniest brass which is sourced locally. This will increase the longevity of your purchase.
</p>
</div>
<div class="iconf"><i class="fas fa-baby-carriage"></i></div>
<div class="dicribef">
<h2>Fast Shipping</h2>
<p>
We make sure you recieve your trombone as soon as we have finished making it. We also provide free returns if you are not satisfied.
</p>
</div>
<div class="iconq"><i class="fas fa-car"></i></div>
<div class="dicribeq">
<h2>Quality Assurance</h2>
<p>
For every purchase you make, we will ensure there are no damages or faults and we will check and test the pitch of your instrument.
</p>
</div>
</div>
</section>
However, now you have elements in undefined regions.
You also need to hide the icons on smaller displays.
I also took the liberty to avoid repeated code by adding two other classes (icon
and dicribe
).
#how {
width: 70vw;
background-color: rgb(253, 253, 253);
margin: auto;
text-align: center;
}
.icon {
display: flex;
justify-content: center;
align-items: center;
font-size: 4rem;
}
.dicribe {
display: flex;
flex-direction: column;
justify-content: center;
align-items: flex-start;
width: 100%;
height: 100px;
}
/* Icons */
.iconp {
grid-area: iconp;
}
.iconf {
grid-area: iconf;
}
.iconq {
grid-area: iconq;
}
/* dicribep */
.dicribep {
grid-area: dicribep;
}
.dicribef {
grid-area: dicribef;
}
.dicribeq {
grid-area: dicribeq;
}
#grid-services {
display: grid;
grid-template-columns: 1fr 4fr;
grid-template-rows: 1fr 1fr 1fr;
grid-template-areas: 'iconp dicribep' 'iconf dicribef' 'iconq dicribeq';
grid-gap: 10px;
}
@media (max-width: 777px) {
.icon { display: none; }
#grid-services {
grid-template-columns: 1fr;
grid-template-rows: 1fr 1fr 1fr;
grid-template-areas: 'dicribep' 'dicribef' 'dicribeq';
}
}
<script src="https://kit.fontawesome.com/4d720cea97.js" crossorigin="anonymous"></script>
<section class="feature" id="feature">
<div id="grid-services">
<div class="icon iconp"><i class="fas fa-ambulance"></i></div>
<div class="dicribe dicribep">
<h2>Premium Materials</h2>
<p>
Our trombones use the shiniest brass which is sourced locally. This will increase the longevity of your purchase.
</p>
</div>
<div class="icon iconf"><i class="fas fa-baby-carriage"></i></div>
<div class="dicribe dicribef">
<h2>Fast Shipping</h2>
<p>
We make sure you recieve your trombone as soon as we have finished making it. We also provide free returns if you are not satisfied.
</p>
</div>
<div class="icon iconq"><i class="fas fa-car"></i></div>
<div class="dicribe dicribeq">
<h2>Quality Assurance</h2>
<p>
For every purchase you make, we will ensure there are no damages or faults and we will check and test the pitch of your instrument.
</p>
</div>
</div>
</section>
Upvotes: 1