【问题标题】:Positioning div under another div将 div 定位在另一个 div 下
【发布时间】:2014-10-03 05:14:14
【问题描述】:

我需要将一个 div 放在另一个 div 下。我发现了关于这个主题的另一个问题,他们建议我使用主要的<div> 和另一个<div>s 作为孩子。 我试图这样做,但我不明白我的代码部分是否不起作用或者我做错了。

HTML

<div id="wrapper">
   <div id="uscite" class="block">
      <div id="jp">
         <img src="../img/uscite/scan.png" height="90" width="60" alt="" /><br />uscite jappo
      </div>
      <div id="it">
         <img src="../img/uscite/scan.png" height="90" width="60" alt="" /><br />uscite ita
      </div>
</div>
<div class="block">
   <a href="https://www.facebook.com/fmpitaly"><img src="../img/facebook.png" width="70" height="70" title="Vieni a trovarci su Facebook" alt="Facebook" /></a>
   <a href="https://twitter.com/FMP_Italy"><img src="../img/facebook.png" width="70" height="70" title="Vieni a trovarci su Twuitter" alt="Twitter" /></a>
</div>

CSS

div#wrapper{
    padding:30px 20px;
    position:absolute;
    right:0;
    border:0px;
}
div#uscite{
    height:35%;
    width:20%;
}
div#jp {
    text-align: center;
    width:50%;
    height:100%;
    float:left;
    border:0px;
}
div#it {
    text-align: center;
    width:50%;
    height:100%;
    float:right;
    border:0px;
}
.block{
    display:block;
}

http://jsfiddle.net/g3do9q0b/

我想要这样的结构

【问题讨论】:

  • 你想要这样的东西吗:jsfiddle.net/rhrutsvc
  • @Josiah 这应该是一个答案。
  • @colepanike,看起来马克有一个更适用的答案。或者至少与这个确切的问题更相关。我的是一般情况。
  • @Josiah 不过,总体而言,这是一个更好的模式。干净多了。
  • @colepanike 好吧,你说服了我。

标签: html css


【解决方案1】:

Marc 使用您的示例给出了答案,但方法不是很干净。当您使用 HTML+CSS 时,您真正想要的是考虑 boxes 中的所有内容。你想要的是两个堆叠在一起的盒子,但顶盒需要包含两个单独的盒子。例如

*----------*
*  1  *  2 *
*     *    *
*----------*
*          *
*     3    *
*          *
*----------*

您希望包含 1 和 2 的框与 3 一样宽,当然 1 和 2 将是该宽度的一半。这样想应该可以简化开发过程。

#bottomDiv {
    height: 400px;
    width: 500px;
    background-color: lightblue;
}

#topDiv {
    width: 500px;
    height: 400px;
}

#leftDiv {
    width: 50%;
    height: 100%;
    background-color: lightgreen;
    float: left;
}
#rightDiv {
    width: 50%;
    height: 100%;
    background-color: orange;
    float: left;
}
<div id="topDiv">
    <div id="leftDiv"> </div>
    <div id="rightDiv"> </div>
</div>
<div id="bottomDiv">
</div>

【讨论】:

  • 我明白这是我的问题。与主要divposition: absolute; 一起使用,因为我需要在页面右侧对齐此div。为了解决这个问题,我使用了这个代码(与我之前使用的代码相同)我使用了float:right;clear:both; 谢谢大家!这个网站太棒了!
  • 为了将其放置在页面的右侧,我在您的代码中 topDiv 之前添加了一个 div,样式为 position:absolute; right:0;,但所有 div 都是重叠的。我该如何解决?
  • 你为什么使用position:absolute;?你不应该这样做。
  • @Josiah 他试图让这个不是整体页面布局,而是页面右侧一小部分元素的容器。
  • @Shika93 Josiah 是对的,你不应该需要这种方法。对于新的网页设计师来说,这通常是一个非常诱人的解决方案,因为你可以把它放在你想要的地方,但这并不是它真正应该用于的。你最好学会理解文档的流程以及你想要做的事情如何适应。虽然这可能需要时间,但对我来说确实如此。
【解决方案2】:
<div id="content">

  <div class="clear">

    <div id="uscite" class="one_half" style="background:blue">
        your content
    </div>
    <div id="it" class="one_half" style="background:red">
        your content
    </div>

  </div>

  <div style="background:orange">
   your content
  </div>

</div>

#content{width:100%;text-align:center}
.one_half{width:50%;float:left}
.clear{overflow:hidden;display:block}

【讨论】:

  • 所有代码和没有内容使 OP 成为一个沉闷的男孩(或女孩,视情况而定)。
  • 感谢您的反馈。下次我会更详细的描述。
【解决方案3】:

超级简化,仅在 chrome(html 5) 中测试

<div class="wrapper">
    <div class="inner">
       <div class="column">
          left
       </div>
       <div class="column">
         right
       </div>
    </div> 
    <div class="footer">
       footer
    </div>
</div>

http://jsfiddle.net/g3do9q0b/10/

【讨论】:

  • @Josiah 打败了你,但这是正确的做法。
  • 是的,他有,因为我已经完成了一半,它以为我会发布它,觉得它更整洁一些,即使我自己这么说(我知道很难过)
  • 恐怕我不同意。您没有包含 CSS,并且您在没有解释原因的情况下给出了解决方案,尽管很明显 OP 正在寻找这种指导。 @Josiah's 更简洁,并解释了 OP 需要了解的更多内容。对不起,伙计。
  • 那里有一个 jsfiddle 链接,我更需要等待并获得响应并进一步指导,您的权利确实包含更多信息,只是在谈论它如何更易于阅读,但是各有千秋!
  • 如果您要链接到 jsfiddle,会提示输入代码的原因是,场外代码无助于网站的目标,即拥有一个好问题的存储库有很好的答案。将来,您可以考虑使用新的 code-sn-ps 功能,或者至少包括您小提琴中的所有代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-13
  • 1970-01-01
  • 2018-06-21
  • 2023-03-28
  • 1970-01-01
相关资源
最近更新 更多