2017-01-05 9 views
0

Ich suche eine Lösung, um Hintergrundbild ohne CSS-Kenntnisse und Hinzufügen von CSS-Dateien zu erstellen. An diesem Punkt verlasse ich mich auf mächtige Kräfte von Vaadin. Offensichtlich ist die Lösung here nicht geeignet für mich, da ich ein eingebautes ValoTheme verwende und ich sehr meinen Prinzipien folgen will (benutze nur ein Styling).Hintergrundbild ohne CSS setzen

Ist es möglich, das ohne CSS zu tun?

Antwort

1

Sie es nicht ohne Styling tun. Der Stil könnte in einer SCSS-Datei oder inline (Csslayout) sein. Hier ist, wie Sie es in .scss tun würden Sie müssen das Bild in VAADIN/themes // Bilder-Ordner einfügen.

@import "../valo/valo.scss"; 

@mixin mytheme { 
@include valo; 

// Insert your own theme rules here 
    .image-background{ 
     background-color: red; 
     background-image: url("images/w3-background.jpg"); 
    } 
} 

und gelten mit diesem Stil .addStyleName(), wie folgt aus:

@Theme("mytheme") 
public class MyUI extends UI { 

    @Override 
    protected void init(VaadinRequest vaadinRequest) { 
     final VerticalLayout layout = new VerticalLayout(); 
     setContent(layout); 
     layout.setSizeFull(); 

     layout.addStyleName("image-background"); 

     layout.addComponent(new Button("Hello, World!")); 
     layout.addComponent(new Button("Hello, World!")); 
     layout.addComponent(new Button("Hello, World!")); 
     layout.addComponent(new Button("Hello, World!")); 
     layout.addComponent(new Button("Hello, World!")); 
     layout.addComponent(new Button("Hello, World!")); 
    } 

    @WebServlet(urlPatterns = "/*", name = "MyUIServlet", asyncSupported = true) 
    @VaadinServletConfiguration(ui = MyUI.class, productionMode = false) 
    public static class MyUIServlet extends VaadinServlet { 
    } 
} 

Hier ist der Screenshot: Vaadin UI with a background image

Möglicherweise müssen URL im Browser neu zu laden oder Browser löschen Geschichte, damit das geänderte CSS korrekt geladen wird.

Ich hoffe es hilft. :-)

+0

Ich habe es selbst herausgefunden, und zum Glück haben Sie und ich dasselbe gedacht. Darf ich Sie bitten? mit chroma dev console habe ich herausgefunden, dass styles.css die datei zweimal liest ... ist das normal? Ich kann nicht herausfinden, warum es so ist. Danke für die Antwort. – Reborn

+1

Einstellung productionMode = true löst dies auf. –

+0

leider löst das mein Problem nicht – Reborn

2

Sie können den Hintergrund-Attribut in der body wie so gesetzt:

<body background='path/to/image/file.png'> 

Hier ist der Link zu der Website W3 Schools Referenz: W3 Schools - Body Background Attribute

+0

Vielen Dank für die Antwort, aber ich bin auf der Suche nach einem bestimmten Weg, wie man mit Vaadin macht. Nicht einfach HTML. – Reborn

+0

Haben Sie die Vaadin Foren um Hilfe gebeten? –

+0

Ja, das ist der Grund, warum ich hier poste. Noch keine Antwort. – Reborn