【问题标题】:Why does my layout collapse to the left on mobile devices?为什么我的布局在移动设备上向左折叠?
【发布时间】:2016-05-24 04:56:30
【问题描述】:

当我将网站缩小到移动设备时,会发生一些非常奇怪的事情。除了图像之外的所有内容似乎都被强制向左,并且无法覆盖整个宽度。为什么会这样? / 我该如何解决?\

* {
  margin: 0;
  padding: 0;
}

.entry-header {
  display: none;
}

body {
  overflow-x: hidden;
  width: 100%;
}

:root {
  background: #fff;
}

#logo {
  display: block;
  margin: auto;
  width: 200px;
  text-align: center;
}

nav ul {
  display: flex;
  justify-content: space-around;
  list-style: none;
  background: #38b449;
  color: #fff;
  font-size: 1.5rem;
  font-family: 'Segoe UI', sans-serif;
}

li.selected {
  color: #f05a2a;
}

nav ul li:hover {
  color: springgreen;
  cursor: pointer;
}

nav ul li.selected:hover {
  color: #f07a2a;
}

main * {
  margin: 20px auto;
}

#btns {
  display: flex;
  justify-content: space-around;
  flex-direction: row;
}

#btns input {
  width: 30%;
  display: block;
  padding: 10px;
  background: springgreen;
  border: none;
  border-radius: 10px;
  color: #fff;
  font-size: 1.3rem;
  font-weight: bold;
  font-family: 'Verdana';
}

#btns input:hover {
  background: #f05a2a;
  cursor: pointer;
}

main p {
  text-align: center;
  max-width: 80%;
  font-size: 1.5rem;
  font-family: 'Segoe UI';
}

main {
width:100%;
}

main p:nth-of-type(4) {
  font-weight: bold;
}

main hr {
  width: 100%;
  background: #0a0;
  height: 1px;
}

.img-c {
  width: 40%;
  background-color: #000;
  max-width: 200px;
  min-width: 50px;
}

.container {
  display: flex;
  justify-content: space-between;
  width: 200%;
}

main div {
  display: flex;
  justify-content: space-between;
}

main > div {
  justify-content: flex-end;
  width: 100%;
  margin: auto;
}

@media screen and (max-width: 416px) {
  .img-c {
    width: 40%;
  }
  
  main > div {
    display: flex;
    flex-direction: column;
    align-items: center;
  }
}

@media screen and (max-width: 358px) {
  nav ul {
    flex-direction: column;
    padding: 0;
  }
  
  nav ul li {
    width: 100%;
    text-align: center;
  }
  
  nav ul li:nth-child(2n) {
    background: #0c0;
  }
}

.entry-footer {
	background: #efe;
}

article {
width:100%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html lang="en-US" class="no-js gr__computerimmersion_com"><head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width">
	<link rel="profile" href="http://gmpg.org/xfn/11">
	<link rel="pingback" href="http://www.computerimmersion.com/beta/xmlrpc.php">
	<link rel="stylesheet" href="http://computerimmersion.com/beta/wp-content/themes/twentyfifteen/style.css">
	<!--[if lt IE 9]>
	<script src="http://www.computerimmersion.com/beta/wp-content/themes/twentyfifteen/js/html5.js"></script>
	<![endif]-->

</head>
<body class="page page-id-165 page-template-default" data-gr-c-s-loaded="true">
		
<article id="post-165" class="post-165 page type-page status-publish hentry">
	
	<header class="entry-header">
		<h1 class="entry-title">beta-main</h1>	</header><!-- .entry-header -->

	<div class="entry-content">
		<header>
  <img src="http://www.computerimmersion.com/wp-content/uploads/2015/10/CompImmer_logo_final_web4.png" id="logo" alt="logo"><p></p>
<nav>
<ul>
<li class="selected">Home</li>
<li>About</li>
<li>Classes</li>
<li>Jobs</li>
</ul>
</nav>
</header>
<p></p><main><p></p>
<div id="btns">
  <input type="button" id="open-contact" value="Contact"><br>
  <input type="button" id="open-player" value="Media">
</div>
<div>
<div class="container">
    <img src="http://www.computerimmersion.com/wp-content/uploads/2015/10/2.jpg" alt="img" class="img-c" style="height: 200px;"><br>
    <img src="http://www.computerimmersion.com/wp-content/uploads/2015/10/5.jpg" alt="img" class="img-c" style="height: 200px; background: magenta;">
      </div>
<div class="container">
    <img src="http://www.computerimmersion.com/wp-content/uploads/2015/10/1.jpg" alt="img" class="img-c" style="height: 200px;"><br>
    <img src="http://www.computerimmersion.com/wp-content/uploads/2015/10/4.jpg" alt="img" class="img-c" style="height: 200px; background: magenta;">
    </div>
<p></p></div>
<p>Are you looking for computer classes that go beyond the typical summer camp or one-day experience?</p>
<p>Does your child have an interest in coding or computer hardware and want to learn what to do next?</p>
<p>Computer Immersion has the answer!</p>
<p>We teach computer science and tech culture to children who are 12-18 years old. Our classes immerse students in a wide range of hardware and software related topics such as scripting, coding, “tech speak”, networking, and hardware.</p>
<p>Our classes are taught by instructors with real world industry experience and meet for 9-week sessions at locations convenient for you.</p>
<p></p></main><br>
<script src="http://code.jquery.com/jquery-2.2.4.js" integrity="sha256-iT6Q9iMJYuQiMWNd9lDyBUStIq/8PuOW33aOqmvFpqI=" crossorigin="anonymous"></script><br>
<script>
   function setHeight() {
	$('.img-c').css('height', $('.img-c').innerWidth());
   }
   setInterval(setHeight, 10);
</script><p></p>
			</div><!-- .entry-content -->

	
</article><!-- #post-## -->


	<footer id="colophon" class="site-footer" role="contentinfo">
		<img class="icon" id="facebook" src="http://computerimmersion.com/beta/wp-content/facebook.png" alt="face">
		<img class="icon" id="facebook" src="http://computerimmersion.com/beta/wp-content/facebook.png" alt="twitter">
		<p id="copy">© 2016</p>
	</footer><!-- .site-footer -->


</body><span class="gr__tooltip"><span class="gr__tooltip-content"></span><i class="gr__tooltip-logo"></i><span class="gr__triangle"></span></span></html>

【问题讨论】:

    标签: css mobile responsive-design


    【解决方案1】:

    这里的问题是您需要将 flex 对齐方式从 row 更改为 column 并且容器的宽度在 200% 处,它越过了屏幕。

    * {
      margin: 0;
      padding: 0;
    }
    
    .entry-header {
      display: none;
    }
    
    body {
      overflow-x: hidden;
      width: 100%;
    }
    
    :root {
      background: #fff;
    }
    
    #logo {
      display: block;
      margin: auto;
      width: 200px;
      text-align: center;
    }
    
    nav ul {
      display: flex;
      justify-content: space-around;
      list-style: none;
      background: #38b449;
      color: #fff;
      font-size: 1.5rem;
      font-family: 'Segoe UI', sans-serif;
    }
    
    li.selected {
      color: #f05a2a;
    }
    
    nav ul li:hover {
      color: springgreen;
      cursor: pointer;
    }
    
    nav ul li.selected:hover {
      color: #f07a2a;
    }
    
    main * {
      margin: 20px auto;
    }
    
    #btns {
      display: flex;
      justify-content: space-around;
      flex-direction: row;
    }
    
    #btns input {
      width: 30%;
      display: block;
      padding: 10px;
      background: springgreen;
      border: none;
      border-radius: 10px;
      color: #fff;
      font-size: 1.3rem;
      font-weight: bold;
      font-family: 'Verdana';
    }
    
    #btns input:hover {
      background: #f05a2a;
      cursor: pointer;
    }
    
    main p {
      text-align: center;
      max-width: 80%;
      font-size: 1.5rem;
      font-family: 'Segoe UI';
    }
    
    main {
    width:100%;
    }
    
    main p:nth-of-type(4) {
      font-weight: bold;
    }
    
    main hr {
      width: 100%;
      background: #0a0;
      height: 1px;
    }
    
    .img-c {
      width: 40%;
      background-color: #000;
      max-width: 200px;
      min-width: 50px;
    }
    
    .container {
      display: flex;
      justify-content: space-between;
      width: 200%;
    }
    
    main div {
      display: flex;
      justify-content: space-between;
    }
    
    main > div {
      justify-content: flex-end;
      width: 100%;
      margin: auto;
    }
    
    @media screen and (max-width: 416px) {
      .img-c {
        width: 100%;
      }
      
      .container {
        flex-direction: column;
        width: 100% !important;
       }
      
      main > div {
        display: flex;
        flex-direction: column;
        align-items: center;
      }
    }
    
    @media screen and (max-width: 358px) {
      nav ul {
        flex-direction: column;
        padding: 0;
      }
      
      nav ul li {
        width: 100%;
        text-align: center;
      }
      
      nav ul li:nth-child(2n) {
        background: #0c0;
      }
    }
    
    .entry-footer {
    	background: #efe;
    }
    
    article {
    width:100%;
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <html lang="en-US" class="no-js gr__computerimmersion_com"><head>
    	<meta charset="UTF-8">
    	<meta name="viewport" content="width=device-width">
    	<link rel="profile" href="http://gmpg.org/xfn/11">
    	<link rel="pingback" href="http://www.computerimmersion.com/beta/xmlrpc.php">
    	<link rel="stylesheet" href="http://computerimmersion.com/beta/wp-content/themes/twentyfifteen/style.css">
    	<!--[if lt IE 9]>
    	<script src="http://www.computerimmersion.com/beta/wp-content/themes/twentyfifteen/js/html5.js"></script>
    	<![endif]-->
    
    </head>
    <body class="page page-id-165 page-template-default" data-gr-c-s-loaded="true">
    		
    <article id="post-165" class="post-165 page type-page status-publish hentry">
    	
    	<header class="entry-header">
    		<h1 class="entry-title">beta-main</h1>	</header><!-- .entry-header -->
    
    	<div class="entry-content">
    		<header>
      <img src="http://www.computerimmersion.com/wp-content/uploads/2015/10/CompImmer_logo_final_web4.png" id="logo" alt="logo"><p></p>
    <nav>
    <ul>
    <li class="selected">Home</li>
    <li>About</li>
    <li>Classes</li>
    <li>Jobs</li>
    </ul>
    </nav>
    </header>
    <p></p><main><p></p>
    <div id="btns">
      <input type="button" id="open-contact" value="Contact"><br>
      <input type="button" id="open-player" value="Media">
    </div>
    <div>
    <div class="container">
        <img src="http://www.computerimmersion.com/wp-content/uploads/2015/10/2.jpg" alt="img" class="img-c" style="height: 200px;"><br>
        <img src="http://www.computerimmersion.com/wp-content/uploads/2015/10/5.jpg" alt="img" class="img-c" style="height: 200px; background: magenta;">
        <img src="http://www.computerimmersion.com/wp-content/uploads/2015/10/1.jpg" alt="img" class="img-c" style="height: 200px;"><br>
        <img src="http://www.computerimmersion.com/wp-content/uploads/2015/10/4.jpg" alt="img" class="img-c" style="height: 200px; background: magenta;">
        </div>
    <p></p></div>
    <p>Are you looking for computer classes that go beyond the typical summer camp or one-day experience?</p>
    <p>Does your child have an interest in coding or computer hardware and want to learn what to do next?</p>
    <p>Computer Immersion has the answer!</p>
    <p>We teach computer science and tech culture to children who are 12-18 years old. Our classes immerse students in a wide range of hardware and software related topics such as scripting, coding, “tech speak”, networking, and hardware.</p>
    <p>Our classes are taught by instructors with real world industry experience and meet for 9-week sessions at locations convenient for you.</p>
    <p></p></main><br>
    <script src="http://code.jquery.com/jquery-2.2.4.js" integrity="sha256-iT6Q9iMJYuQiMWNd9lDyBUStIq/8PuOW33aOqmvFpqI=" crossorigin="anonymous"></script><br>
    <script>
       function setHeight() {
    	$('.img-c').css('height', $('.img-c').innerWidth());
       }
       setInterval(setHeight, 10);
    </script><p></p>
    			</div><!-- .entry-content -->
    
    	
    </article><!-- #post-## -->
    
    
    	<footer id="colophon" class="site-footer" role="contentinfo">
    		<img class="icon" id="facebook" src="http://computerimmersion.com/beta/wp-content/facebook.png" alt="face">
    		<img class="icon" id="facebook" src="http://computerimmersion.com/beta/wp-content/facebook.png" alt="twitter">
    		<p id="copy">© 2016</p>
    	</footer><!-- .site-footer -->
    
    
    </body><span class="gr__tooltip"><span class="gr__tooltip-content"></span><i class="gr__tooltip-logo"></i><span class="gr__triangle"></span></span></html>

    【讨论】:

      猜你喜欢
      • 2018-11-04
      • 2022-11-26
      • 2019-06-29
      • 1970-01-01
      • 2019-02-23
      • 1970-01-01
      • 2017-03-18
      • 2014-07-07
      • 2016-11-04
      相关资源
      最近更新 更多