2017-01-05 14 views
0

Я ищу решение для настройки фонового изображения без знания CSS и добавления файлов css. В этот момент я полагаюсь на могущественные силы Ваадина. Очевидно, решение, размещенное here, не подходит для меня, так как я использую встроенный ValoTheme, и я очень хочу следовать моим принципам (используйте только один стиль).Установить фоновое изображение без css

Можно ли это сделать без CSS?

ответ

1

Вы не можете сделать это без укладки. Стиль может быть внутри файла SCSS или встроенного (Csslayout). Вот как вы это сделаете .scss Вам необходимо вставить изображение в папку VAADIN/themes // images.

@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"); 
    } 
} 

и применить этот стиль, используя .addStyleName(), например:

@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 { 
    } 
} 

Вот скриншот: Vaadin UI with a background image

Вы, возможно, потребуется перезагрузить URL в браузере или удалить браузер для правильной загрузки измененного CSS.

Надеюсь, это поможет. :-)

+0

Я понял это сам, и, к счастью, мы с тобой думали одинаково. Могу я задать тебе вопрос? используя консоль chroma dev, я понял, что файл styles.css читается дважды ... это нормально? Я не могу понять, почему это так. Спасибо за ответ. – Reborn

+1

Настройка productionMode = true разрешает это. –

+0

К сожалению, это не решает мою проблему – Reborn

2

Вы можете установить атрибут фона в body так:

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

Вот ссылка на сайт W3 Schools для справки: W3 Schools - Body Background Attribute

+0

Благодарим за отзыв, но я ищу конкретный способ, как сделать с Ваадином. Не простой HTML. – Reborn

+0

Проконсультировались ли вы на форумах Vaadin? –

+0

Да, вот почему я публикую здесь. Пока нет ответа. – Reborn