Как использовать сетку css в Vaadin Flow вместо GridLayout Framework 8?

Я пытаюсь перенести существующее приложение Vaadin 8 на Vaadin 12, и мне нужно знать, как воссоздать функциональность GridLayout Vaadin 8 в Vaadin 12.

Согласно документам Vaadin, GridLayout можно заменить в Vaadin 12 автор: "Используйте Div вместе с новой функцией CSS Grid, которая поддерживается в большинстве браузеров"

К сожалению, не совсем понятно, как именно это можно сделать.

Предположим, что у меня есть составной объект Vaadin HelloGrid:

@StyleSheet("styles/hello-grid.css")
public class HelloGrid extends Composite<Div> {

   public HelloGrid(){

     // EDIT: This line is my solution to the question
     getElement().getClassList().add("hello-grid");

     Label labelOne = new Label();
     labelOne.addClassName("label-one");

     Label labelTwo = new Label();
     labelTwo.addClassName("label-two");

     add(labelOne);
     add(labelTwo);
   }
}

И файл css "hello-grid.css":

.hello-grid {
    display: grid !important;
    grid-template-rows: auto;
    grid-template-columns: 1fr 1fr;
}

.label-one {
    grid-column: 1;
}

.label-two {
    grid-column: 2;
}
  • Как связать класс css ".hello-grid" с составным элементом HelloGrid.
  • Является ли это правильным/предпочтительным способом использования сетки CSS в Vaadin 12 вообще?

person Frank Kaiser    schedule 29.01.2019    source источник
comment
Тем временем я сам нашел возможное решение: добавить getElement().getClassList().add("hello-grid"); в конструктор Composite. Но изначально я ожидал, что вместо этого смогу установить имя класса элементов с помощью аннотации. Я отредактирую свой вопрос с этим решением.   -  person Frank Kaiser    schedule 29.01.2019


Ответы (1)


Это слишком поздно, но, возможно, отвечает на чей-то еще вопрос.

Это зависит от того, где именно вы разместили свои css стили. Я бы предложил разместить под webapp\frontend\styles, тогда вы сможете получить к ним доступ с помощью @StyleSheet("frontend://styles/hello-grid.css"). Как также отмечено в официальной документации, здесь включая таблицы стилей. это

Относительно URL-адреса сервлета

Используя ваш пример с этой настройкой: Расположение файла стиля

и подобные стили (просто добавляйте цвета в таблицу стилей, чтобы убедиться, что это работает) Константа файла стиля

это был вывод: введите описание изображения

Я не нашел точных руководств на странице Vaadin, как можно использовать стили сетки, но этот урок выглядит многообещающе Полное руководство по сетке. В остальном ничего особенного в отношении Ваадина быть не должно.

Кроме того, кажется, что в каталоге есть надстройка, которая может помочь CSS Grid Layout (через, я сам не пробовал)

person anasmi    schedule 10.04.2019