Ich versuche, die Material-Benutzeroberfläche festzulegen Select Breite der Komponente. Dafür muss ich dem eine Klasse zur Verfügung stellen FormControl Komponente, wie z mw-120 die auf eine CSS-Klasse verweist, die die definiert min-width von 120px.
Während ich die Größe erwarten würde Select Wenn die Komponente nun eine Breite von mindestens 120 Pixeln hat, bleibt die Komponente nach dem Rendern genau gleich, wie im folgenden Bild gezeigt. Mit anderen Worten: Es ist zu eng. Die Breite ist nicht groß genug. Die Breite sollte größer als das Etikett sein Language.
Eine Elementanalyse innerhalb der Chrome Developer Tools hat gezeigt, dass das Haupt-DIV-Element dieser Komponente eine Klasse hat .MuiFormControl-root-234 das beinhaltet min-width: 0;und es liegt/rang höher als mein .mw-120 Klasse. Ich denke, das überschreibt meine .mw-120 Klasse, oder? Gibt es eine andere Möglichkeit, die Breite der Material UI Select-Komponente zu beeinflussen? Es gibt keine hilfreichen Beispiele für die Beeinflussung der Breite dieser Komponente Material-Benutzeroberfläche: Seite „Komponente auswählen“..
Ihre Klasse funktioniert nicht, da sie in der kompilierten CSS-Datei weiter oben steht. Die richtige Lösung besteht darin, sicherzustellen, dass Ihre neue Klasse in dieser Datei niedriger ist. Oder verwenden Sie Inline-Stile und !important wenn Ihnen Ihr Projekt egal ist.
Wenn Sie es in mehr Code wiederverwenden möchten und Codeduplizierungen vermeiden möchten, möchten Sie wahrscheinlich damit arbeiten Themen
@PedroVieira Danke, das style param macht tatsächlich den Trick. Und Sie haben Recht mit der Codeduplizierung. Ich verwende SASS für alle Stile und glaube, dass Material UI auch etwas CSS hinzufügt. Dies führt dazu, dass mein CSS immer unter dem von Material UI liegt und daher überschrieben wird.
– Sokrates
14. Mai 2019 um 18:06 Uhr
@Socrates, die Anwendung, an der ich gearbeitet habe, ist ziemlich einfach, daher habe ich das nie durchgearbeitet, aber vielleicht könnten Sie, wie gesagt, Duplikate mit Themen reduzieren, aber ich weiß nicht, ob Ihr CSS nicht auch auf diese Weise überschrieben wird
– Pedro Vieira
14. Mai 2019 um 18:17 Uhr
Ausgezeichneter Pedro. Was ist nun, wenn ich als % und nicht als feste Länge verwenden möchte? ´style={{width:’33%’}} hat keine Auswirkung und meine Artikel haben bereits eine xs={4} eine Abgabe
– Juan Salvador
16. Dezember 2019 um 13:58
Danke +1. Wenn nicht ein-aus, dann verwenden Sie auch useStyles stackoverflow.com/a/66861308/984471
In Material-Benutzeroberfläche v5 du kannst den … benutzen sx Stütze. Beachten Sie, dass im folgenden Beispiel a verwendet wird wählen TextField was im Wesentlichen dasselbe ist wie Select außer dass es die Beschriftung und den Hilfstext anzeigen kann. Weitere Informationen dazu finden Sie in dieser Antwort TextField funktioniert.
In unserem Fall Selektoren .MuiFormControl-root Und .mv-120 haben die gleiche Spezifität, daher ist die Reihenfolge, in der sie deklariert werden, wichtig. Generierte Stile werden zuletzt injiziert <head> Abschnitt der Seite, und wenn benutzerdefinierte Stile auch in diesem Abschnitt platziert werden, haben sie eine niedrigere Priorität:
Ihre Klasse funktioniert nicht, da sie in der kompilierten CSS-Datei weiter oben steht. Die richtige Lösung besteht darin, sicherzustellen, dass Ihre neue Klasse in dieser Datei niedriger ist. Oder verwenden Sie Inline-Stile und
!important
wenn Ihnen Ihr Projekt egal ist.– Arsenij-II
14. Mai 2019 um 13:16 Uhr
Vielleicht möchten Sie diesen Abschnitt der Mui-Dokumente lesen? material-ui.com/customization/components/…
– Hans Spieß
4. April 2021 um 21:11 Uhr