【问题标题】:Prevent Divs From Overlapping In Responsive Layout防止 div 在响应式布局中重叠
【发布时间】:2017-04-23 13:31:40
【问题描述】:

我试图防止两个并排的 div 在响应式布局中重叠。

这是我的html:

    <div class="image"><img src="images/misc/libertyXSmall.jpg"/></div>
    <div class="storyWrapper">
    <div class="headline">THIS IS A TEST HEADLINE TO SEE HOW EVERYTHING 
    WORKS ON THIS NEWS LIST PAGE!</div>
    </div>

这是 CSS:

 body{margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;}
.mainContainer{float:left; height:auto; width:100%; max-width:800px; }
.image{float:left; margin-top:0px; width:14.25%; height:auto;}
.storyWrapper{float:left;  width:85.75%; height:auto; min-height:64px; background-color:#f6f6f6; color:#000000;transition:0.2s; }
.storyWrapper:hover{background-color:#c0c0c0; color:#ffffff;}
.headline{text-align:left; padding:6px 6px 6px 6px; font-size:11pt; font-weight:bold; font-family:Arial; text-decoration:none;}

此页面的链接是:http://www.rebelplanetnews.com/newsMenu3.html

如您所见,我的问题是.. 右侧的文本 div 在页面调整大小(更小)时与左侧的图像 div 重叠。我需要防止这种情况发生。

【问题讨论】:

  • 您在div 中有一个imgdiv 是响应式的,但 img 是固定大小。这是计划吗?
  • 2020 年 10 月。解决方案是忘记 float 并使用 flexbox 或网格。其余三个没有浏览器的用户将不得不处理它。

标签: css responsive-design resize overlapping


【解决方案1】:

答案是不要在标题中使用百分比。最简单的解决方案是使用calc 值,它可以在所有现代浏览器中使用。

以下将起作用:

div.storyWrapper {
    width: calc(100% - 114px);
    float: right;
}

这里,我注意到图片的宽度是114px,并将容器的宽度设置为100%减去那个。

我还把容器浮动到了右边。

请注意,calc 有点挑剔。特别是,- 运算符周围需要空格:calc(100%-114px) 将不起作用,至少在所有浏览器中都不起作用。

【讨论】:

【解决方案2】:

问题是当 .image div 缩小时,您的实际图像并没有缩小。因此 .image div 将根据其宽度百分比进行调整,但不会根据其中包含的图像进行调整。如果给 img 元素添加 width: 100% ,图像现在会随着 div 容器缩小,文本 div 不会重叠。

【讨论】:

  • 我不希望图像缩小。我想缩小的唯一部分是'storyWrapper' div。而且我只希望该 div 缩小宽度,而不是高度。
猜你喜欢
  • 2015-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多