2017-05-11 3 views
0

Ich habe mehrere Kombinationsfelder auf der ganzen Seite. Und es gibt eine Combobox, die ich ansprechen möchte.Vaadin. Kombinationsfeld responsive Popup-Fenster

Nehmen wir an, ich habe das Layout, genau wie diese enthält:

public class MyLayout extends CssLayout ... { 
    ... 
    void initLayout { 
     displayBoxFilter = new ComboBox(); 
     displayBoxFilter.addStyleName("displayBoxFilter"); 
    } 
} 

und ich habe CSS wie folgt aus:

.MyUI { 
    ... 
    .displayBoxFilter { 
    color: red; 
    } 
} 

.MyUI[width-range~="0-767px"] { 
    ... 
    .displayBoxFilter { 
    color: blue; 
    } 
} 

Aber wenn ich das tue, nur Combo-Box-Beschriftung Farben sich umziehen. Aber ich möchte auch die Farbe des Popup-Fensters ändern.

Nach Kombinationsfeld CSS-Stilregeln (https://vaadin.com/docs/-/part/framework/components/components-combobox.html) i hinzufügen v-filterselect-suggestpopup und verschachtelten Formate außerhalb MyUI Stil:

.v-filterselect-suggestpopup { 
    .gwt-MenuItem { 
    color: yellow; 
    } 
} 
.v-filterselect-suggestpopup[width-range~="0-767px"] { 
    .gwt-MenuItem { 
    color: green; 
    } 
} 

Danach, ich habe ein Kombinationsfeld mit Bildunterschrift Farben, die in Reaktion darauf erhalten geändert. Die Popup-Fensterfarbe bleibt jedoch gleich (immer gelb).

Ich denke, es ist, weil Popup-Fenster außerhalb meiner Responsive UI gerendert wird. Responsive.makeResponsive(displayBoxFilter) hat nicht funktioniert. Wie mache ich dieses Fenster ansprechbar?

Alle Vorschläge wären hilfreich! Vielen Dank im Voraus

UPD basierend auf Jouni Antwort (für mich gearbeitet): habe ich @media außerhalb @mixin in mytheme.scss wie folgt hinzugefügt:

@mixin mytheme { 
    @include theme; 
    ... 
} 
@media (max-width:767px) { 
    .mytheme { 
    .gwt-MenuItem { 
     color: green; 
    } 
    } 
} 

Antwort

0

Dies ist eine Einschränkung in der Responsive-Erweiterung ist, dass Es gilt nicht für Overlay-Elemente (mit Ausnahme der Window-Komponente).

Die beste Problemumgehung besteht darin, regelmäßig CSS-Medienabfragen zu verwenden.