[問題] 用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