0

私はこの奇妙な問題を抱えており、間違いがどこにあるのか理解していないようです。オンラインで見つけたチュートリアルに基づいて、レスポンシブ タイル レイアウトを構築しています。チュートリアルでは、タイルの幅は 20% で、サイト全体はそれに基づいて動作します。そのため、パーセンテージを 20% から 33.33% に変更すると、幅だけが増加し、高さは 20% のままです (タイル内のコンテンツを切り取ります)。なぜこれが起こっているのか理解できません...私はすでにいくつかの異なるクラスに高さを追加しようとしましたが、これまでのところ結果はありません.

私はあなたが見て、うまくいけば間違いがどこにあるかを教えてくれるようにコードを入れます...

HTML:

<body class="no-touch">

<div class="wrap">

  <!-- Define all of the tiles: -->
  <div class="box">
    <div class="boxInner">
      <img src="http://www.dwuser.com/education/content/creating-responsive-tiled-layout-with-pure-css/images/demo/1.jpg" />
      <div class="titleBox">Just a caption</div>
    </div>
  </div>
  <div class="box">
    <div class="boxInner">
      <img src="http://www.dwuser.com/education/content/creating-responsive-tiled-layout-with-pure-css/images/demo/1.jpg" />
      <div class="titleBox">An old greenhouse</div>
    </div>
  </div>
  <div class="box">
    <div class="boxInner">
      <img src="http://www.dwuser.com/education/content/creating-responsive-tiled-layout-with-pure-css/images/demo/2.jpg" />
      <div class="titleBox">Purple wildflowers</div>
    </div>
  </div>
  <div class="box">
    <div class="boxInner">
      <img src="http://www.dwuser.com/education/content/creating-responsive-tiled-layout-with-pure-css/images/demo/3.jpg" />
      <div class="titleBox">A birdfeeder</div>
    </div>
  </div>
  <div class="box">
    <div class="boxInner">
      <img src="http://www.dwuser.com/education/content/creating-responsive-tiled-layout-with-pure-css/images/demo/10.jpg" />
      <div class="titleBox">Crocus close-up</div>
    </div>
  </div>
  <div class="box">
    <div class="boxInner">
      <img src="http://www.dwuser.com/education/content/creating-responsive-tiled-layout-with-pure-css/images/demo/4.jpg" />
      <div class="titleBox">The garden shop</div>
    </div>
  </div>

</div>
<!-- /#wrap -->

<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.3.js"></script>
<script type="text/javascript">
$(function(){
   // See if this is a touch device
   if ('ontouchstart' in window)
   {
      // Set the correct [touchscreen] body class
      $('body').removeClass('no-touch').addClass('touch');

      // Add the touch toggle to show text when tapped
      $('div.boxInner img').click(function(){
         $(this).closest('.boxInner').toggleClass('touchFocus');
      });
   }
});
</script>


</body>

CSS:

body {
   margin: 0;
   padding: 0;
   background: #fff;
   font: 18px 'voltaireregular',sans-serif;
   margin:auto;
}

.wrap {
   overflow: hidden;
   margin: 10px;
}

.box {
   float: left;
   position: relative;
   width:33.33%;
   padding-bottom: 20%;
}

.boxInner {
   position: absolute;
   left: 10px;
   right: 10px;
   top: 10px;
   bottom: 10px;
   overflow: hidden;
}

.boxInner img {
   width: 100%;
}

.boxInner .titleBox {
   position: absolute;
   bottom: 0;
   left: 0;
   right: 0;
   margin-bottom: -50px;
   background: #f1804b;
   opacity:0.8;
   color: #FFF;
   padding: 10px;
   text-align: center;
   -webkit-transition: all 0.3s ease-out;
   -moz-transition: all 0.3s ease-out;
   -o-transition: all 0.3s ease-out;
   transition: all 0.3s ease-out;
}

body.no-touch .boxInner:hover .titleBox, body.touch .boxInner.touchFocus .titleBox {
   margin-bottom: 0;
}

@media only screen and (max-width : 480px) {

   /* Smartphone view: 1 tile */

.box {
    width: 100%;
    padding-bottom: 100%;
}
}

@media only screen and (max-width : 650px) and (min-width : 481px) {

   /* Tablet view: 2 tiles */

.box {
    width: 50%;
    padding-bottom: 50%;
}
}

@media only screen and (max-width : 1050px) and (min-width : 651px) {

   /* Small desktop / ipad view: 3 tiles */

   .box {
      width: 33.3%;
      padding-bottom: 33.3%;
   }
}

@media only screen and (max-width : 1290px) and (min-width : 1051px) {

   /* Medium desktop: 4 tiles */
.box {
    width: 25%;
    padding-bottom: 25%;
}
}

それで...手がかりはありますか?前もって感謝します!

4

1 に答える 1

0

OK、解決策は padding-bottom: 20%; を変更することでした。.box クラスで、幅と同じパーセンテージに...

于 2013-07-10T14:45:50.230 に答える