2016-09-30 2 views
3

I Flexbox Eigenschaften verwendet, um meine Abschnitt wie folgt aussehen:css Anzeige flex nicht richtig auf Chrom und Safari arbeiten

enter image description here

Es funktioniert auf Chrome in Ordnung, aber ich bemerkte ein paar Unterschiede, wenn ich firefox überprüft und Safari.

Dies ist, wie Chrom aussieht: enter image description here

Aber auf Firefox, ich Verwaltung bin nicht-Marge von 1% anzuwenden, wie ich als Rotsignal wollen zeigt:

enter image description here

und auf Safari sind die Boxen alle eins nach dem anderen:

enter image description here

Es ist eine WordPress-Seite und noch nicht live. Aber hier ist meine HTML-Struktur:

<section id="services"> 

     // here goes the title of the container 

     <div class="main-container col-lg"> 

       // here go all the box 

     <div class="services-container">  

       // this one of the boxes    
     </div> 
     </div> 
    </section> 

Und die CSS:

#services { 
    background-image: url("img/Services-background.jpg"); 
    background-color: red; 
} 
.col-lg { 
    display: flex; 
    flex-wrap: wrap; 
    justify-content: center; 
    margin: initial; 
    max-width: 100%; 
} 
.services-container { 
    color: #d6d6d6; 
    margin: 1%; 
    max-width: 100%; 
    width: 30%; 
} 

Wie kann ich diese Arbeit auf allen Browsern zu machen?

+1

Flexbox funktioniert gut in modernen Browsern. Es ist nur neu und einige Browser erfordern besondere Aufmerksamkeit. In diesem Fall verursacht [** die Verwendung eines prozentualen Spielraums das Problem **] (http://stackoverflow.com/a/36783414/3597276). –

+1

Für Safari, siehe [** Chrome/Safari füllt nicht 100% Höhe des Flex-Elternteils **] (http://Stackoverflow.com/q/33636796/3597276) und [** Flexbox-Code funktioniert in allen Browsern außer Safari. Warum? **] (http://stackoverflow.com/q/35137085/3597276). –

Antwort

2

empfehle ich Ihnen nicht Flexbox verwenden, sondern schwimmt statt. alle Flex-Eigenschaften löschen Ihre CSS sollte wie folgt aussehen:

#services{ 
    background-image: url(img/Services-background.jpg); 
    overflow: auto; 
} 
.services-container { 
    color: #d6d6d6; 
    width: 30%; 
    float: left; 
    margin: 1%; 
} 

Dann können Sie den Rest des Styling hinzuzufügen. Es funktioniert auf allen Browsern.

+0

Ich verwende Float-Eigenschaft und funktioniert auf allen Browsern in der Tat –

4

Der beste Weg, um sicherzustellen, dass flex in allen Browsern gleich funktioniert, ist die Verwendung von Präfixen.

Here's the chart from MDN Sie die verschiedenen Browser-Präfixe für Flex-Box zeigt (und allgemeine Browser-Unterstützung Hinweise)

+0

Der Link scheint merkwürdig zu springen, klicken Sie einfach auf den Link _Browser compatibility_ in der rechten Seitenleiste, um die Tabelle mit den Präfixen zu sehen. – pixeldesu

3
display: flex; 
-webkit-display: flex; 
-moz-display: flex; 
-ms--display: flex; 
Verwandte Themen