2017-07-24 95 views
1

在您將其他問題(如我的)引薦給我之前,我已經瀏覽了他們,嘗試了他們的解決方案,但他們並不適合我。CSS3 - 在iOS 10.3.2(Chrome和Safari)上使用Flex wrap時遇到問題

我的問題在於flexbox的佈局。我正在爲我的網站上的某些元素使用Flexbox佈局。

我使用的是flex-wrap: wrap,這在我的桌面測試環境中可以正常工作,但是當我嘗試在移動設備上測試它時,Flex項目並未包裝,它們都顯示在同一行上。

.flexContainer { 
 
     display: -webkit-flex; 
 
     display: flex; 
 
     -webkit-flex-wrap: wrap; 
 
     flex-wrap: wrap; 
 
     -webkit-flex-direction: row; 
 
     flex-direction: row; 
 
    /* justify-content: space-around;*/ 
 
    } 
 
    .flexContainerBox { 
 
     -webkit-flex: 1; 
 
     flex: 1; 
 
     border-top: 20px solid transparent; 
 
     position: relative; 
 
     padding: 20px; 
 
     max-width: 100%; 
 
     font-family: "Open Sans Bold"; 
 
    } 
 
    
 

 
    
 

 
.flexContainerBoxBorderRight { 
 
     border-right: 1px solid #ccc; 
 
     position: absolute; 
 
     top: 10%; 
 
     bottom: 25%; 
 
     right: 0; 
 
    } 
 
    @media screen and (max-width: 566px){ 
 
     
 
     .flexContainerBoxBorderRight { 
 
      display: none; 
 
     } 
 
    } 
 
    
 
    
 
    .flexContainerBox1 { 
 
     border-top-color: #15AF04; 
 
     color: #15AF04 
 
    } 
 
    
 
    .flexContainerBox2 { 
 
     border-top-color:#E4A621; 
 
     color: #E4A621; 
 
    } 
 
    .flexContainerBox3 { 
 
     border-top-color: #1b63b1; 
 
     color: #1b63b1; 
 
    } 
 
    .flexContainerBox4 { 
 
     border-top-color: #dd0000; 
 
     color: #dd0000; 
 
    
 
    } 
 
    .flexContainerBox::before { 
 
     content: ''; 
 
     position: absolute; 
 
    /* border: 15px solid transparent;*/ 
 
     border-width: 0 15px 0 15px; 
 
     border-style: solid; 
 
     border-color: transparent; 
 
     border-bottom: 0; 
 
     position: absolute; 
 
     left: 50%; 
 
     top: 0; 
 
     -moz-transform: translateX(-50%); 
 
     -ms-transform: translateX(-50%); 
 
     -webkit-transform: translateX(-50%); 
 
     transform: translateX(-50%); 
 
     -webkit-transition: all .3s ease-out; 
 
     -moz-transition: all .3s ease-out; 
 
     -ms-transition: all .3s ease-out; 
 
     -o-transition: all .3s ease-out; 
 
     transition: all .3s ease-out; 
 
     } 
 
    
 
    .flexContainerBox:hover::before { 
 
     border-width: 15px 15px 0 15px; 
 
    } 
 
    
 
    .flexContainerBox1:hover::before { 
 
     border-top-color: #15AF04; 
 
    
 
    }  
 
    .flexContainerBox2:hover::before { 
 
     border-top-color: #E4A621; 
 
    } 
 
    .flexContainerBox3:hover::before { 
 
     border-top-color: #1b63b1; 
 
    } 
 
    .flexContainerBox4:hover::before { 
 
     border-top-color: #dd0000; 
 
    } 
 
    .flexContainerBoxTextBox > ul { 
 
     list-style:none; 
 
     padding: 0; 
 
     margin: 0; 
 
    } 
 
    
 
    .flexContainerBoxTextBox > ul > li{ 
 
     margin-bottom: 10px; 
 
    } 
 
    .flexContainerBoxTextBox ul li + li::before{ 
 
     background-color: #ccc; 
 
     content: ""; 
 
     display: block; 
 
     height: 1px; 
 
     margin: 0 auto; 
 
     position: relative; 
 
     top: -7px; 
 
     left: 0; 
 
     width: 22px; 
 
    } 
 
    
 
    .flexContainerBoxTextBox { 
 
     text-align: center; 
 
     font-size: 1.2em; 
 
     font-family: "museo"; 
 
    
 
    } 
 
    
 
    .flexContainerBoxHeading { 
 
     text-align: center; 
 
     font-size: 1.9em; 
 
     padding: 10px; 
 
     margin-bottom: 5px; 
 
    }
<div class="indexContainer whiteContainer flexContainer"> 
 
      <div class="flexContainerBox flexContainerBox1"> 
 
       <div class="flexContainerBoxBorderRight"></div> 
 
        <div class="flexContainerBoxHeading"> 
 
         WORLD CLASS <span style="color:#111"><br>FACILITIES</span> 
 
        </div>  
 
        <div class="flexContainerBoxTextBox"> 
 
         <ul> 
 
          <li>Day & Boarding</li> 
 
          <li>Secondary & Primary</li> 
 
          <li>Ages 2 to 18</li> 
 
          <li>200 Students </li> 
 
          <li>Cambridge IGCSE & GCEs</li> 
 
          <li>Beautiful sports facilities</li> 
 
         </ul> 
 
        </div> 
 
      </div> 
 
      <div class="flexContainerBox flexContainerBox2"> 
 
       <div class="flexContainerBoxBorderRight"></div> 
 
       <div class="flexContainerBoxHeading"> 
 
         QUALITY <span style="color:#111"><br>EDUCATION</span> 
 
        </div>  
 
        <div class="flexContainerBoxTextBox"> 
 
         <ul> 
 
          <li>Over 10 Years Experience in Quality delivery</li> 
 
          <li>Good resources for Students</li> 
 
          <li>Student Oriented Learning</li> 
 
          <li>Good Teaching staff </li> 
 
          <li>Conducive Environment</li> 
 
         </ul> 
 
        </div> 
 
      </div> 
 
      <div class="flexContainerBox flexContainerBox3"> 
 
       <div class="flexContainerBoxBorderRight"></div> 
 
       <div class="flexContainerBoxHeading"> 
 
         PERSONAL <span style="color:#111"><br>TOUCH</span> 
 
        </div>  
 
        <div class="flexContainerBoxTextBox"> 
 
         <ul> 
 
          <li>Small Class Sizes</li> 
 
          <li>Low teacher:student Ratio</li> 
 
          <li>Maximum contact with teachers</li> 
 
          <li>Mentorship programs</li> 
 
          <li>Student Counselling</li> 
 
         </ul> 
 
        </div> 
 
      </div> 
 
      <div class="flexContainerBox flexContainerBox4"> 
 
       <div class="flexContainerBoxBorderRight"></div> 
 
       <div class="flexContainerBoxHeading"> 
 
         HOLISTIC <span style="color:#111"><br>APPROACH</span> 
 
        </div>  
 
        <div class="flexContainerBoxTextBox"> 
 
         <ul> 
 
          <li>Innovative Teaching Methods</li> 
 
          <li>Use of Technology in learning</li> 
 
          <li>Developing the "whole" child</li> 
 
          <li>Nurturing Talents & Gifts</li> 
 
          <li>Extra-curricular program</li> 
 
          <li>Christ-Centered School</li> 
 
         </ul> 
 
        </div> 
 
      </div> 
 
      <div class="clear"></div> 
 
     </div>

對於這個問題的更詳細的說明,這裏有一個小提琴:https://jsfiddle.net/Lombe/qtkqqhqw/

+0

JSfiddle在模擬iPhone 6上按預期工作。 – jhpratt

+0

它是從計算機模擬的嗎?即使對我來說,當我模擬它時,它也能很好地工作,但當我在實際的手機上嘗試時,它只會給我帶來問題。我希望我有一個android來測試它,這樣我就可以看出它是移動設備的問題,還是隻是iOS。 – Lombe

+0

是的,我使用了Chrome模擬器。我沒有iPhone,所以我不能在那裏檢查。我稍後可以在我的Android上檢查它,但其他人可能會在那之後進行檢查。 – jhpratt

回答

0

一下添加到標籤:

<meta name="viewport" content="width=device-width, initial-scale=1.0"> 
+0

嘿,我已經添加到我的部分。其他解決方案? – Lombe

+0

我不確定,但您是否嘗試過使用媒體查詢將Flex方向更改爲列? – wpalmes

+0

我會試試 – Lombe

0

我看你解決了這個,但問題也在於flex-basis。沒有指定屬性,速記flex: 1將其設置爲0%。由於您的物品沒有設置width,因此它會退回到物品內容的計算寬度。

這意味着您的當前項目將縮小到0%。如果您想要一個不需要媒體查詢的解決方案,將.flexContainerBoxflex: 1更改爲flex: 1 1 auto將在iOS上正確縮放包裝。

這可以設置您的基於柔性的基礎,或者「柔性項目可以具有的柔量」,以隨您的內容自動縮放。

+0

我曾嘗試過。我自動設置flex項目的問題是,在某些屏幕寬度下,某些div會比其他div大。此截圖說明了http://i.imgur.com/WRbEAnO.png – Lombe

+0

設置項目的「寬度」如何?這種方式的項目有一個最小的寬度之前折斷flex。將寬度設置爲〜300px,並以flex爲基礎自動消除不規則大小。 –

相關問題