html - CSS:填充较低元素的剩余宽度空间

标签 html css responsive-design

我找不到答案的基本问题。

让元素拉伸(stretch)以使用页面的剩余宽度并不是什么新鲜事。与更改并排元素以堆叠在小屏幕上相同。这两种情况都允许您选择元素顺序/组合(例如, float :方向;顶部/底部的 DOM 元素顺序)但是在执行这两种操作时如何设置顺序?我猜你可能会说我想控制我的元素堆栈溢出。 眨眼眨眼轻推

“ block 格式化上下文”技巧让我非常接近我想要的东西。
HTML:

<div class="blue">Some navigation list items.</div>
<div class="red">Search box expanding to cover empty space.</div>

CSS:

.red {    
width:auto;
height:150px;
background:red;
min-width:200px;
overflow:hidden;
}
.blue {
height:150px;
width:300px;
background:blue;
float:left;
}

http://jsfiddle.net/A8zLY/5503/
在我的例子中,如何在达到阈值(最小宽度)时让“红色”(动态大小的框)位于顶部?我不能使用媒体查询作为导航列表元素可以改变。

最佳答案

好了,开始吧。

虽然我不确定你想要完成什么,而且这个解决方案可能不符合你的布局需求,但这里有一个解决问题的方法 - 切换两个元素的位置并添加这个 css:

html, body {
  padding:0;
  margin:0;
}
.red {
  position:relative;
  margin-left:300px;
  height:150px;
  background:red;
}

.blue {
  position:absolute;
  left:0;
  top:0;
  height: 150px;
  width: 300px;
  background: blue;
}
@media (max-width:300px) {
  .blue {
    position:static;
    width:100%;
  }
  .red {
    margin-left:0;
  }
}

http://jsfiddle.net/A8zLY/5506/

我使用媒体查询断点来包装这两个元素。

元素在包装时要放在其他元素之上的唯一方法是在 HTML 标记中放在最前面。

关于html - CSS:填充较低元素的剩余宽度空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44337940/

相关文章:

javascript - 自定义 CSS 到 BootStrap NavBar

javascript - 用鼠标不断调整元素大小的最佳方法是什么?

css - 固定宽度并排的多个div

asp.net - 如何固定高度相应的屏幕分辨率?

html - 导航栏元素在台式机和笔记本电脑上呈现奇怪

html - 如何禁用 Flexbox 中的等高列?

html - 通过使用 CSS 保持纵横比来缩放带有中心裁剪的图像

javascript - HTML - 使用媒体查询加载单独的布局

CSS流体图像替换?

css - Angular Material md-select - 无法打开选定用户的框