2

フローティング div などを使用してレスポンシブ デザインを作成しようとしています。ヘッダーと画像スライダーの下に、メイン コンテンツの div があります。ここには 2 つの div があり、1 つは左に、もう 1 つは右に浮いています。右側の div には、1 つの列に 3 つの div があります。左の div には 4 つの div があり、すべて左に浮いており、次のように配置されます。

画像 - レイアウト可

ここに私の問題があります-ブラウザの幅をリサイズすると、左のコンテナ div の下部の 2 つの div が次のように移動します。

画像 - レイアウトが不適切

clearfix を試してみましたが、問題が解決しないようで、行き詰まっています。

ここで私が間違っていたことを誰か教えてもらえますか - お願いします! ;o)

上記のスクリーンショットは、Chrome ブラウザーからのものです。他のブラウザ (Safari、Firefox、Opera) でも同じバグが常に発生します。ページのコンテンツよりも小さいサイズにサイズ変更するときだけではありません。

誰かがここで私を助けてくれることを願っています。ちょっとイライラする ;o( 以下に、私のコードがあります。ありがとうございます!

//ジェスパー

HTML: コンテンツ

        <div id="content-wrap" class="centered">
            <div id="fp-branding-area">
                <!-- nivo slider here -->
            </div>
            <div id="content-main">
                <div class="fp-box-main">
                    <img src="images/fp_box1.jpg" alt="Alttext1">
                    <h1 class="box-caption">Caption1</h1>
                </div>
                <div class="fp-box-main"><img src="images/fp_box2.jpg" alt="Alttext2">
                    <h1 class="box-caption">Caption2</h1>
                </div>
                <div class="fp-box-main"><img src="images/fp_box3.jpg" alt="Alttext3">
                    <h1 class="box-caption">Caption3</h1>
                </div>
                <div class="fp-box-main"><img src="images/fp_box4.jpg" alt="Alttext4">
                    <h1 class="box-caption">Caption4</h1>
                </div>
            </div> <!-- /end #content-main -->
            <div id="content-side">
                <div class="fp-box-side">
                    <img src="images/fp_box_side1.jpg" alt="Side Alttext1">
                    <h1 class="box-caption">SideCaption1</h1>   
                </div>
                <div class="fp-box-side">
                    <img src="images/fp_box_side2.jpg" alt="Side Alttext2">
                    <h1 class="box-caption">SideCaption2</h1>
                </div>
                <div class="fp-box-side">
                    <img src="images/fp_box_side3.jpg" alt="Side Alttext3">
                    <h1 class="box-caption">SideCaption3</h1>
                </div>
            </div> <!-- /end #content-side -->
        </div> <!-- /end #content-wrap -->
    </div> <!-- /end #page -->

    <footer id="footer-main">
        <div id="footer-wrap" class="centered">
            Content
        </div>
    </footer>
</body>

CSS:

h1, h2, h3, h4, hgroup {
  font-family: Avenir;
  font-size: 1.18em;
  letter-spacing: .05em;
}

.centered {
  position: relative;
  margin: 0 auto;
}

.full-width {
  width: 960px;
}

#page {
  background: url(../images/gradient_page.png) repeat-x;
  min-height: 100%;
  width: 100%;
}

#header-main {
  height: 137px;
  background: url(../images/bg_header.jpg);
}

#header-wrap {
  width: 960px;
}

#content-wrap {
  background: url(../images/web-dropshadow_header.png) center top no-repeat;
  width: 100%;
  max-width: 960px;
  overflow: auto;
  padding-bottom: 136px;
  /* must be same height as the footer */
}

#fp-branding-area {
  width: 100%;
  margin-top: 2.11361%;
  background-color: #c6c6c6;
}

#content-main {
  width: 78.85416666666667%;
  /* ((757 / 960) * 100) */
  float: left;
  margin-bottom: 2.11361%;
}

#content-side {
  width: 21.14583333333333%;
  /* ((203 / 960) * 100) */
  float: left;
}

.fp-box-main {
  position: relative;
  width: 47.88639%;
  /* ((362.5 / 757) * 100) */
  margin: 2.11361% 2.11361% 0 0;
  float: left;
  overflow: hidden;
  clear: none;
}

.fp-box-main img, .fp-box-side img {
  width: 100%;
  margin-bottom: -3px;
}

.fp-box-side {
  position: relative;
  margin-top: 7.88177%;
  width: 100%;
  overflow: hidden;
  clear: both;
}

.fp-box-side h1 {
  font-size: .8em;
}

.box-caption {
  background-color: black;
  color: #FFF;
  position: absolute;
  text-align: center;
  text-transform: uppercase;
  width: 90%;
  padding: 5%;
  bottom: 0;
}

#footer-main {
  position: relative;
  margin-top: -136px;
  /* negative value of footer height */
  height: 136px;
  clear: both;
  background-color: white;
}

#footer-wrap {
  width: 960px;
}
4

4 に答える 4

0

あなたの問題は、パーセント単位とマージンです。

パーセントでレスポンシブデザインを作成する本当の方法は、マージンを使用するときに「マージン」を使用しないことです.0.01パーセントで間違いを犯すと、すべてのレイアウトが崩れます. ラッパーと「パディング」で作成する必要があります。

パディングを使用すると、これを行うことができます

* {
box-sizing:border-box;
-moz-box-sizing:border-box; /* Firefox */
-webkit-box-sizing:border-box; /* Safari */
}

このコードの平和は、すべてのページを内側のパディングにすることを意味します。50% のボックスを作成し、50% のパディングを配置すると、パディングはボックスの内側から計算されます。また、0.01 パーセントを間違えることを恐れずにパーセントを計算させることができます。

于 2013-01-28T14:01:17.120 に答える
0

1000px 程度の親を作成し、幅をピクセル単位で指定して、サイズ変更またはズームインまたはズームアウトするときに、このような状況を回避できるようにしてください。

于 2013-01-24T14:01:22.337 に答える
0

4枚の写真はすべて左に浮いているので、サイズ変更はそれらに影響を与えると思います.親divのを大きくしても、1行に浮くでしょう.

の div内に2 つの通常の div を作成、最初の div にフローティングの左の画像とフローティングの右の画像を配置し、2 番目の div で同じことを行います。

-----------------------------------------
|               |      |                |
|               |      |                |
|               |      |                |
|               |      |                |
|               |      |                |
-----------------------------------------
-----------------------------------------
|               |      |                |
|               |      |                |
|               |      |                |
|               |      |                |
|               |      |                |
-----------------------------------------

左の div とその中の div の幅を最小にするとよいでしょう。

min-width:100px;

更新: 別の可能な解決策

widthページの最大値がLeft Parent Div aとRight Parent Div a を960px;このように指定している場合、サイズを変更すると、固定幅が維持され、小さくなりません。つまり、フロートの順序に影響しません。それらの内部の要素。min-width:500px;min-width:400px;

于 2013-01-24T13:58:04.347 に答える