0

我有这个奇怪的问题,我似乎不明白错误在哪里。我正在根据我在网上找到的教程构建响应式磁贴布局。在 thr 教程中,瓷砖有 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

好的,解决方案是更改 padding-bottom: 20%; 在 .box 类上与宽度相同的百分比......

于 2013-07-10T14:45:50.230 回答