2016-08-04 38 views
2

Ich habe eine Webanwendung mit angularjs und material-design.Warum hat der Material Design Dialog Körper keine Höhe auf einem iPad

Ich verwende md-dialog zum Hinzufügen und Bearbeiten bestimmter Datensätze aus der Datenbank. Dies reagiert und funktioniert wie erwartet auf meinem Desktop für alle Browser außer IE (keine große Überraschung). So soll es aussehen.

enter image description here

Allerdings, wenn ich die Anwendung in safari auf einem Mac oder einen beliebigen Browser auf iOS (einschließlich Chrom) ausführen, wird der Dialog, den Inhalt zu fehlen (keine Höhe).

enter image description here

Während IE nicht genau das gleiche Problem hat, es scheint ähnlich zu sein. Also, ich glaube, es ist ein Problem damit, wie iOS die flex Attribute rendert. Ich bin mir jedoch nicht sicher und weiß nicht, wie ich das auf meinem iPad bestätigen kann.

Meine Suche hat bis jetzt keine funktionierenden Lösungen zu diesem Problem zur Verfügung gestellt, aber ich habe gesehen, dass andere die gleiche Frage stellen (obwohl nicht durch Stapel).

Was verursacht dieses Problem? Wie repariere ich es für ein iPad?

UPDATE

Dies ist, wie der Dialog in der HTML gerendert wird:

<md-dialog-content class="flex" id="dialogContent_140" flex> 
    <form name="workerDialog" class="md-dialog-content ng-pristine ng-invalid-required ng-valid-mindate ng-valid-maxdate nd-valid-filtered ng-valid-valid ng-valid-minlength ng-valid-maxlength ng-valid-pattern ng-valid-unique" style> 
     ... 
    </form> 
</md-dialog-content> 

Wenn ich das Element ändern und flex wie folgt entfernen:

<md-dialog-content class="flex" id="dialogContent_140"> 

Der Körper Inhalt erscheint wie erwartet (zumindest auf dem MAC).

Ich kann auch die CSS in angular-material.min.css ändern und -webkit-flex, -ms-flex, flex und erreichen die gleichen Ergebnisse entfernen.

[flex]{ 
    -webkit-flex: 1; 
    -ms-flex: 1; 
    flex: 1; 
    box-sizing: border-box; 
} 

ich nicht ganz kann flex für den Rest der Anwendung töten, aber ich muss dies auf einem iPad arbeiten ermöglichen.

+1

könnten Sie den Beispielcode angeben, wird es helfen, leicht zu untersuchen? Ich hatte auch ein Problem mit Z-Index und Position CSS auf Ipad vor. –

+0

würde ich gerne, aber ich bin mir nicht sicher, was zu bieten ist. Es gibt eine Menge Code und dies ist keine spezielle Implementierung des Materialdesigndialogs.Was kann ich anbieten, um es einfacher zu machen? – davids

Antwort

0

Weitere Informationen mit einigen speziellen Browser (zum Beispiel Internet Explorer, IOS-Browser ...) sollten wir den Wert für flex betrachten zu schreiben, flex="auto" oder flex="100", wird es helfen anuglar-material auf diesen Browsern würde.

1

Ich habe die Ursache meiner Probleme gefunden. Danke an @Tran Khanh Nguyen dafür, dass er mich in die richtige Richtung gebracht hat. Wenn das Dialogfeld definiert wurde, fügte jemand <md-dialog-content flex> hinzu. Ich entfernte flex und es behob das Problem auf allen Geräten.

+1

Gut zu hören, dass es Ihr Problem gelöst hat! Für weitere Informationen, mit einem speziellen Browser (zB IE, IOS Browser ...) sollten wir überlegen, den Wert für 'flex' hinzuzufügen, wie' flex = "auto" 'oder' flex = "100" ', es wird helfen Anuglar-Material würde in diesen Browsern gut funktionieren. –

+1

diesen Kommentar als Antwort hinzufügen und ich werde es akzeptieren :) – davids

+0

in meinem Fall war es Klasse 'flex-scrollable' – Ulterior