具有同級的嵌套彈性框為flex-grow : 1和Overflow-y : auto在 Safari 中無法按預期工作[我的版本 13.1 (14609.1.20.111.8)]。這在 Chrome 中再次表現出色。附上這兩項的屏幕截圖以及最小的可重現代碼塊。如果我們給第二個子元素 flex-basis : [n]px 一個固定的大小..它工作得很好。但我們不能總是期望給出這一點,因為第二個項目中的內容是動態的。在下面的代碼塊中,它顯示了最小的可重現用例。.parent { flex-direction: column; display: flex; background-color: #CCC; padding: 8px; height: 150px; font-size: 16px;}.fixedChild { display: flex; padding: 10px; justify-content: space-between; flex-basis: auto;}.growingChild { overflow-y: auto; flex-grow: 1;}/*! CSS Used from: Embedded */.fancyButton { background-color: transparent; border: 1px solid transparent; border-color: #0076D1; border-radius: 15px; color: #0076D1; height: 50px; justify-content: center; outline: none; padding: 0 8px;}<div class="parent"> <div class="growingChild"> Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32. </div> <div class="fixedChild"> <button class="fancyButton" type="button">button 1</button> <button class="fancyButton" type="button">button 1</button> <button class="fancyButton" type="button">button 1</button> </div></div>
1 回答

胡子哥哥
TA貢獻1825條經驗 獲得超6個贊
這并沒有解決潛在的不一致問題,而是將最后一個子項(彈性項目)設置為:
flex-shrink: 0;
似乎使 Safari 和 Chrome 的行為相同,其中 Flex 容器占按鈕的高度以及不斷增長的 Flex 項目同級。不確定誰對誰錯,但我覺得也許是 Safari ???
- 1 回答
- 0 關注
- 187 瀏覽
添加回答
舉報
0/150
提交
取消