ปัญหาเกี่ยวกับ Flex/Flex-Flow ในเดสก์ท็อปและมือถือ

พบพฤติกรรมแปลกๆ หลังจากทดสอบเว็บไซต์แบบตอบสนองบนมือถือและหวังว่าฉันจะได้รับข้อมูลเชิงลึกเกี่ยวกับสิ่งที่เกิดขึ้น โดยพื้นฐานแล้ว ฉันมีแถวบูตสแตรปแถวเดียวที่มีรูปภาพ 23 รูป ในความละเอียด iPhone ของฉัน (375 x 667) ฉันเห็นผลลัพธ์ที่แตกต่างกับวิธีการแสดงแถวเมื่อเปรียบเทียบกับเบราว์เซอร์บนเดสก์ท็อปที่ตั้งค่าความละเอียดนั้น

เป้าหมายของฉันคือให้รูปภาพแสดงคู่กันจนถึงบรรทัดสุดท้าย ซึ่งจะมีรูปภาพอยู่ตรงกลาง นอกเหนือจากคลาสแถว bootstrap มาตรฐานแล้ว ฉันยังได้เพิ่มคลาสชื่อ flex ซึ่งใช้ css ต่อไปนี้:

.flex { 
    display: flex;
    justify-content: center;
    flex-flow: row wrap;
    position: relative;
}

HTML คล้ายกับสิ่งนี้:

<div class="row flex">
    <div class="customColumn">
        <img src="some-image" class="img-responsive some-image-class" alt="some alt"/>
    </div>
    <div class="customColumn">
        <img src="some-image" class="img-responsive some-image-class" alt="some alt"/>
    </div>
    <div class="customColumn">
        <img src="some-image" class="img-responsive some-image-class" alt="some alt"/>
    </div>
    <div class="customColumn">
        <img src="some-image" class="img-responsive some-image-class" alt="some alt"/>
    </div>
</div>

บนเดสก์ท็อป ไม่ว่าฉันจะสร้างหน้าจอเล็กแค่ไหน ภาพก็จะแสดงตามที่คาดไว้ ด้วยเหตุผลบางประการบนมือถือ รูปภาพแรกในกลุ่มคือรูปภาพที่แสดงด้วยตัวเอง และรูปภาพหลังจากนั้นจะแสดงเป็นคู่

เหตุใดพฤติกรรมการแสดงผลนี้จึงตรงกันข้ามกับเดสก์ท็อปและมือถือ

CodePen แสดงพฤติกรรมที่คาดหวัง: codepen.io/anon/pen/jZWGNj ปัญหาคือสิ่งนี้ทำงานตรงกันข้ามกับมือถืออย่างสิ้นเชิง (iPhone, Android, iPad)

แก้ไข: ฉันแค่อยากชี้แจงว่า 'คอลัมน์ที่กำหนดเอง' ในกรณีนี้เป็นเพียงคอลัมน์บูทสแตรปบรรจุกระป๋องเท่าที่เกี่ยวข้องกับค่าความกว้าง


person Cameron Gray    schedule 30.01.2018    source แหล่งที่มา
comment
ใครก็ได้? มันเหมือนกับว่ามีการใช้เอฟเฟกต์แบบ wrap-reverse สำหรับการแสดงผลบนมือถือ แม้ว่า CSS จะเป็นแบบ wrap ก็ตาม   -  person Cameron Gray    schedule 01.02.2018
comment
stackoverflow.com/help/mcve   -  person Michael Benjamin    schedule 01.02.2018
comment
@Michael_B ฉันไม่แน่ใจว่าฉันเข้าใจ ดูเหมือนว่าฉันจะมีคุณสมบัติตรงตามข้อกำหนด/ข้อเสนอแนะ 9/10 ในลิงก์นั้น ไม่ว่าฉันจะมีปากกาโค้ดที่แสดงพฤติกรรมที่ถูกต้อง: codepen.io/anon/pen/jZWGNj . บนเดสก์ท็อป แถวสุดท้ายจะเป็นแถวเดียวและอยู่ตรงกลาง บนมือถือ แถวแรกจะเป็นแถวเดียวและอยู่กึ่งกลาง   -  person Cameron Gray    schedule 02.02.2018


คำตอบ (1)


หากใครพบปัญหานี้อีกครั้ง สามารถพบได้คำตอบในกระทู้นี้: ข้อบกพร่องของ Flexbox Safari ( เฟล็กซ์ห่อ)

ปรากฎว่าปัญหานี้ไม่ใช่ปัญหาการแสดงผลบนมือถือ แต่เป็นปัญหาของ iOS และวิธีการจัดการ :ก่อนและ :หลัง การแก้ไขในเธรดด้านบนใช้งานได้สำหรับฉัน

person Cameron Gray    schedule 08.02.2018