给定一个模板,由于其他要求无法修改HTML,如何在HTML中不按顺序显示(重新排列)div
另一个上面的模板div
?两者都div
包含高度和宽度不同的数据.
Other elementsContent to be below in this situationContent to be above in this situation
希望很明显,期望的结果是:
Content to be above in this situation
Content to be below in this situation
Other elements
当尺寸固定时,很容易将它们定位在需要的位置,但是当内容变化时我需要一些想法.为了这种情况,请仅考虑两者的宽度为100%.
我特意寻找一个只有CSS的解决方案(如果不能解决的话,它可能必须满足其他解决方案).
此后还有其他元素.鉴于我所展示的有限场景,我们提到了一个很好的建议 - 假设它可能是最好的答案,但我也希望确保后面的元素不会受到影响.
此解决方案仅使用CSS并使用可变内容
#wrapper { display: table; }
#firstDiv { display: table-footer-group; }
#secondDiv { display: table-header-group; }
仅限CSS的解决方案(适用于IE10 +) - 使用Flexbox的order
属性:
演示:http://jsfiddle.net/hqya7q6o/596/
#flex { display: flex; flex-direction: column; }
#a { order: 2; }
#b { order: 1; }
#c { order: 3; }
A
B
C
正如其他人所说,这不是你想要在CSS中做的事情.你可以用绝对定位和奇怪的边距来捏造它,但它不是一个强大的解决方案.在您的情况下,最好的选择是转向JavaScript.在jQuery中,这是一个非常简单的任务:
$('#secondDiv').insertBefore('#firstDiv');
或更一般地说:
$('.swapMe').each(function(i, el) { $(el).insertBefore($(el).prev()); });
这可以使用Flexbox完成.
创建一个同时应用display:flex和flex-flow:column-reverse的容器.
/* -- Where the Magic Happens -- */
.container {
/* Setup Flexbox */
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
/* Reverse Column Order */
-webkit-flex-flow: column-reverse;
flex-flow: column-reverse;
}
/* -- Styling Only -- */
.container > div {
background: red;
color: white;
padding: 10px;
}
.container > div:last-of-type {
background: blue;
}
first
second
在支持pre-flexbox用户代理(主要是旧的IE)时,绝对没有办法通过CSS实现你想要的东西- 除非:
您知道每个元素的确切渲染高度(如果是这样,您可以绝对定位内容).如果你正在处理动态生成的内容,那你就不走运了.
你知道这些元素的确切数量.同样,如果你需要为动态生成的几个内容块执行此操作,那么运气不好,特别是如果有超过三个左右的内容.
如果以上都是真的那么你可以通过绝对定位元素来做你想要的 -
#wrapper { position: relative; } #firstDiv { position: absolute; height: 100px; top: 110px; } #secondDiv { position: absolute; height: 100px; top: 0; }
再说一遍,如果你不知道至少#firstDiv的高度,你无法通过CSS单独做你想做的事.如果这些内容中的任何内容是动态的,您将必须使用javascript.
这是一个解决方案:
Tags | 热门标签RankList | 热门文章
- 1使用Singleton模式的Android Volley错误
- 2有没有办法截断字段数据
- 3如何在vim中将命令的输出打印到新窗口
- 4'缺少PFX或证书+私钥.' 在https socket.io中
- 5如何让kestrel Web服务器监听非localhost请求?
- 6更改ui.bootrap的工具提示箭头的颜色(附带的plunker)
- 7Stanford NER Tagger在NLTK
- 8Phaser:如何在预加载后加载资产?
- 9键入表示非空的字符串或F#中的空格
- 10如何正确使用dataLayer.push()更新数组中嵌套对象的值?
- 11无法使用bootstrap-sass与webpack一起工作
- 12Django上的用户角色架构
- 13使用Multibranch Workflow清理构建
- 14如何告诉Gradle始终使用--console = plain?
- 15在C++ 11中使用shared_from_this()而不使用托管共享指针
- 16在git rebase期间找到分支名称
- 17从C++ std :: vector中的线程中启动可运行对象
- 18Android Studio更新破坏了我的模拟器
- 19Scikit Learn Multilabel分类:ValueError:您似乎正在使用传统的多标签数据表示
- 20无法在AsyncTask中访问"findViewById"