媒体查询的宽度有问题,这就是原因;根本没有响应

问题描述

这是我的代码链接

https://jsfiddle.net/bb567go/wzg21fnk/

<!DOCTYPE html>

<head>
<Meta charset="UTF-8">
<Meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>Module-2 Assignment</title>
<link rel="stylesheet" href="style.css">
</head>

<body>

*{ margin:0;
padding:0;
Box-sizing: border-Box;
}

body{
font-size: 15px;
font-family: cursive;

}

h1{
text-align: center;
position: relative;
top:50px;
}

section{
height:100vh;
width:100%;
display: flex;
flex:row wrap;
justify-content: center;
align-items: center;
border:2px solid black;

}

#pink{
background-color: rgb(228,111,169);
}
#red{
background-color: rgb(216,61,61);
color: white;
}
#yellow{
background-color: rgba(245,220,77,0.904);

}

.btn
 {
 position: relative;
 top:-25px;
 right:-5px;
 height:25px;
 float: right;
 width:100px;
 border: none;
 outline:none;
 border-bottom: black;
 
 border-left: black;
 }


 .gray{
 border: 2px solid black;
 justify-self: center;
 margin: 15px 10px;
 background-color:gray;
 align-self: center;
 width:100%;
 height:200px;
 line-height: 20px;

 padding: 25px 5px 5px 5px;

 }

 @media only screen and (min-width:991px){
     


    .gray{
      width:33.3%;
    }
 }
  @media only screen and (min-width:768px) and (max-width:991px){
    #item-1,#item-2{
         width:50%
    }
    #item-3{
       width:100%
    }}
    @media only screen and (max-width:767px){
        .gray{
            width:100%
        }
    } 









</style>
<h1>Our Menu</h1>
<section class="main-section">
  

        <div class="gray" id="item-1">
            <div> <button class="btn" id="pink">Chicken</button></div>
          <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Quibusdam iusto necessitatibus 
magnam modi
            harum? Fugit et fuga nam molestiae,laborum debitis aperiam amet atque blanditiis placeat 
dolorem
            dolorum eius,delectus quam quasi voluptate perferendis iste? Libero,quibusdam nam,alias quisquam
            sit provident labore animi quos dolorum ipsum pariatur est modi.</p></div>
  
        <div class="gray" id="item-2">
            <div> <button class="btn" id="red">Beef</button></div>
            <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Quibusdam iusto 
necessitatibus magnam modi
                harum? Fugit et fuga nam molestiae,laborum debitis aperiam amet atque blanditiis 
placeat dolorem
                dolorum eius,alias quisquam
                sit provident labore animi quos dolorum ipsum pariatur est modi.</p></div>
     
        <div class="gray" id="item-3">
            <div> <button class="btn" id="yellow">Sushi</button></div>
            <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Quibusdam iusto 
necessitatibus magnam modi
                harum? Fugit et fuga nam molestiae,alias quisquam
                sit provident labore animi quos dolorum ipsum pariatur est modi.</p></div>


    </section>

我希望我的自适应设计像这样:在台式机上 所有带有文本的灰色框

在平板电脑上 我希望前两个框占据第一行中一半的空间,而下一行中的第三个框覆盖该空间的前一行中前两个框的总和

在手机上 下一行中的每个框

解决方法

我看到了您的代码,而不是媒体查询问题。您已失去任何其他功能,因此可以使用下面的解决方案。

解决方案:

section{
  flex-wrap:wrap
}
,

嘿,我试用了您的代码,我相信我把您放在正确的轨道上。

签出:https://jsfiddle.net/d9L36wjh/6/

*,*:before,*:after {
    
    box-sizing: border-box;
}

body{
    font-size: 15px;
    font-family: cursive;
   
}

h1{
    text-align: center;
    
    top:50px;
}

section{
  display: flex;
  height: 100vh;
  width: 100%;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  border: 2px solid black;
}

#pink{
    background-color: rgb(228,111,169);
}
#red{
    background-color: rgb(216,61,61);
    color: white;
}
#yellow{
    background-color: rgba(245,220,77,0.904);

}

.btn
   {
     position: relative;
     top: -25px;
     right: -5px;
     height: 25px;
     float: right;
     width: 100px;
     border: none;
     outline: none;
     border-bottom: black;
     border-left: black;
     }


.gray{
     border: 2px solid black;
     margin: 15px 10px;
     background-color: gray;
     width: 400px;
     height: auto;
     line-height: 20px;
     padding: 25px 5px 5px 5px;

 }

@media (max-width: 480px) {
       
 section {
   flex-direction: column;
 }
 .gray {
   width: auto;
 }
        
}
     
@media (max-width: 1280px) {
     
     section {
       align-items: stretch;
     }
    #item-1 {
       flex-grow: 1;
     }
     #item-2 {
       flex-grow: 1;
     }
    #item-3{
      flex-grow: 2;
      
    }
        
}

剩下的你自己做。查阅本指南:https://css-tricks.com/snippets/css/a-guide-to-flexbox/

您只需要调整列换行的媒体查询,这样它就不会在移动视图中溢出节容器。并且您可能想增加不同视口中项目容器的高度。 您仍然有事要做,但是从这里开始应该没什么大不了的。

更新:我调整了媒体查询,并认为它现在看起来像您想要的样子。

玩得开心