CSS 有一个 div 位于左 div 的右下方。 HTML 中的 div 是相反的

发布于 2024-12-21 07:45:33 字数 262 浏览 1 评论 0原文

描述有点令人困惑,但我有两个 div。一个位于页面左侧,一个通过浮动位于页面右侧。右边是 HTML 中的第一个,左边是第二个。基本上,我希望左侧 div 位于顶部,右侧 div 位于其下方。如果 HTML 上的 Left 和 Right 是有序的,那么就像删除浮动一样简单。然而,由于情况并非如此,我需要一些帮助。这是我设置的jsfiddle: http://jsfiddle.net/7bTjj/

The description is kind of confusing, but I have two divs. One which sits on the left on the page, one which sits on the right via floats. The one on the right is first in the HTML, the one on the left is second. Basically, i want to have it so the left div sits on top, and the right div sits below it. If Left and Right were in order on the HTML, it would be as simple as removing the floats. However, since this is not the case, i need a bit of a hand. Here's a jsfiddle i have setup: http://jsfiddle.net/7bTjj/

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

小苏打饼 2024-12-28 07:45:33

在过去,您必须使用绝对定位。现在,您可以使用为管理布局而创建的 CSS3 属性来解决此问题。

使用 display:boxbox-ordinal-group 属性以您喜欢的任何顺序显示 .container 的内容,而无需使用浮点数all:(

-webkit 供应商前缀只是为了简单起见)

.container, .left, .right {
  display:-webkit-box;
  -webkit-box-orient: vertical;
}

.left {
  -webkit-box-ordinal-group: 1;
}

.right {
  -webkit-box-ordinal-group: 2;
}

由于您的目标是移动设备,因此 IE 缺乏支持应该不是问题。

这是我的小提琴分支

Isotoma 有一篇 关于 Flexbox 的漂亮易读的介绍,我在调整 CSS 时引用了它。

Back in the day you would have to use absolute positioning. Now you can resolve this issue using CSS3 properties created for managing layout.

Use display:box and box-ordinal-group properties to display the contents of your .container in whatever order you like, without using floats at all:

(-webkit vendor prefixes only for simplicity)

.container, .left, .right {
  display:-webkit-box;
  -webkit-box-orient: vertical;
}

.left {
  -webkit-box-ordinal-group: 1;
}

.right {
  -webkit-box-ordinal-group: 2;
}

Since you're targeting mobile, IE's lack of support should not be a problem.

Here's my fork of your fiddle.

Isotoma has a nice, readable introduction to flexbox that I referenced while tweaking your CSS.

迷途知返 2024-12-28 07:45:33

如果您知道元素的高度宽度,则可以使用边距

.left {
  height:20px;
  width:70%;
  float:left;
  margin-left:-30%;
}

.right {
  width:30%;
  float:left;
  margin-top:20px;   
}

演示

如果您不这样做,则可能需要 JavaScript。这是一个类似问题

If you know the height and width of the elements, it's possible with margin.

.left {
  height:20px;
  width:70%;
  float:left;
  margin-left:-30%;
}

.right {
  width:30%;
  float:left;
  margin-top:20px;   
}

Demo

If you don't, JavaScript may be necessary. Here is a similar question.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文