[问题] 用float取代flex的方法

楼主: KawasumiMai (さあ、死ぬがいい)   2015-03-26 14:37:54
如题,先给架构
<div class="align_l">
<div class="A" />
<div class="B" />
<div class="C" />
</div>
<div class="align_r">
<div class="C" />
<div class="B" />
<div class="A" />
</div>
简单的说
A 跟 B 是固定宽度
C 则是 内文宽度~把剩下的宽度塞满
三者"维持在同一行"
然后另一个重点是
align_l内的div靠左对齐
align_r内的div则靠右
原先,A B C 三者都加上float
不过 align_r 内的div就算float:right也没办法靠右(why?)
而且当C超过一定宽度的时候会跳到第二行去
后来去掉float,改用display:flex跟flex-direction:row
似乎完美的解决掉了问题
就连align_r的靠右对齐问题
也用justify-content: flex-end;解决了
然后就悲剧了....mobile(iPhone)上ABC分别为三行....
大概是因为flex的细项设定为CSS3所以手机上的还没实装吧..
不过Safari就算了,Chrome竟然也不行
估计要回归float才能解决,但补满最大宽度又强制单行排列的问题仍然存在
所以想问
1.有以上float的解法吗?还是说flex只要修改一下可以用在手机上?
2.因为排列顺序的问题,所以align_r内的顺序是CBA不是ABC
有办法仍然是ABC但排列顺序和align_l内的反过来吗?(不用absolute的话)
感谢解答的各位
作者: meteorsok (花花小蛋糕)   2015-03-26 15:39:00
楼主: KawasumiMai (さあ、死ぬがいい)   2015-03-26 15:43:00
差了一点点,主要是C的宽度C的宽度不是强制补满,而是依照文字宽度变大但是最大只能在维持一行的情况下塞满剩下空间不能跳到下一行去
作者: rarex (╰(〒皿〒)╯)   2015-03-26 15:45:00
左右顺序可以用direction:rtl ltr ?
楼主: KawasumiMai (さあ、死ぬがいい)   2015-03-26 15:49:00
楼上的方法有用,感谢,终于可以不用手动换Div顺序
作者: miau (米奥)   2015-03-26 15:53:00
可以调整html吗?http://cssdeck.com/labs/909lxbpc
楼主: KawasumiMai (さあ、死ぬがいい)   2015-03-26 16:01:00
=3= 外面加一层框当wrapper的做法怎么一直没想到感谢miau,这个做法太棒了QQ不对..遇到一点小问题...display:table是不是会限制div直接match内容大小?结果无法套用align_l跟align_r的max-height XDDDDD感谢miau大的帮助QQ结果原本flex的方法加上 -webkit-就解决了....
作者: eight0 (欸XD)   2015-03-27 04:47:00
楼主: KawasumiMai (さあ、死ぬがいい)   2015-03-27 12:59:00
喔喔楼上的css好简洁..所以真的可以不用用到flex秘诀是因为C没用到float而是直接margin吗?
作者: eight0 (欸XD)   2015-03-27 15:47:00
这和一楼的方法相同,只是在 C 里多加了一个 wrapper

Links booklink

Contact Us: admin [ a t ] ucptt.com