问个 CSS 问题

2014 年 7 月 14 日
 83f420984
现有布局,A与B的高度未知,宽度未知,A在上面,B在下面,结构也是A在B前面,如何在不改变结构的情况下,让A与B的位置调换?即B在上,A在下面;

用CSS方法实现优先考虑;

请指点,谢谢
4426 次点击
所在节点    程序员
14 条回复
Mcatt
2014 年 7 月 14 日
position:absolute 定位?
jsonline
2014 年 7 月 14 日
把AB的父容器用CSS3倒个个儿,再把AB分别倒个个儿。。。
pagecho
2014 年 7 月 14 日
如果按一楼绝对定位,需要元素的高度啊,就需要用到js来协助了。
如果要纯css,楼主可以对这两个元素外面的大容器作180度旋转,然后对这两个元素作180旋转,就倒排了。之前v2ex上有个倒排li的帖子出现过这个方法。
ZhaoMiing
2014 年 7 月 14 日
@pagecho +1 这种方法还可以用来做「卡片翻转」效果,不过在ie系下backface-visibility会有问题。
cutehalo
2014 年 7 月 14 日
给A,B的父级 加上-webkit-transform: rotate(180deg); 再分别给A,B加上-webkit-transform: rotate(180deg);
这样就行了XD
catoncat
2014 年 7 月 14 日
ianva
2014 年 7 月 14 日
lz 的项目如果不在意低级浏览器可以尝试 flexible,order 属性很轻松做到一切,现在在手机版的项目上用上了。
http://www.w3.org/html/ig/zh/css-flex-1/
jsonline
2014 年 7 月 14 日
order 更靠谱。楼主给的条件不够清楚。
83f420984
2014 年 7 月 14 日
@jsonline
@pagecho
谢谢,这思维太给力了
iamjs
2014 年 7 月 14 日
@pagecho 记忆犹新。。秒杀js的回答
NemoAlex
2014 年 7 月 14 日
@crs0910 这个方法有个问题:无法撑开容器
外层容器的高度会跟 B 一样,而 A 的高度又是未知的
这样如果 A 和 B 下面还有东西要放的话,就不太好弄了
L3au
2014 年 7 月 14 日
仅考虑实现,还是flex
.container {
display: flex;
flex-direction: column-reverse;
}
http://www.w3cplus.com/css3/css3-flexbox-cheat-sheet.html
kmokidd
2014 年 7 月 14 日
如果不需要兼容浏览器,受到之前一个CSS旋转1000个列表的问题的启发,可以把AB外层的容器旋转180度,再将AB分别旋转180度

jsfiddle: http://jsfiddle.net/QBEs4/
kmokidd
2014 年 7 月 14 日
@cutehalo 啊啊sorry 没有看到已经有人用这个方法了= =

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/122503

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX