Полимерный пользовательский элемент, содержащий ячейки таблицы?
Я пытаюсь создать пользовательский элемент с полимером, который содержит несколько ячеек таблицы. Я хочу включить его в строку таблицы. Проблема, с которой я сталкиваюсь, заключается в том, что теги пользовательских элементов нарушают формат таблицы (поскольку строка таблицы должна содержать элементы ячейки таблицы непосредственно, а не через подэлемент).
Есть ли какой-то способ сделать то, что я хочу?2 ответа:
Это не поддерживается, потому что браузер не поддерживает его. То, что вы можете сделать, это не использовать таблицу, а вместо этого использовать CSS для отображения элементов, таких как table-cell,
См. также https://developer.mozilla.org/de/docs/Web/CSS/display
display: table; display: table-cell; display: table-column; display: table-column-group; display: table-footer-group; display: table-header-group; display: table-row; display: table-row-group;
Если вы хотите сделать свой пользовательский элемент, чтобы просто обернуть несколько
<td></td>
(но не все) из<tr>
, то это может сработать для вас<dom-module is="custom-tr"> <template> <style> :host { display: table-row; } .td, ::content .td { display: table-cell; } <div class="td">a</div> <div class="td">b</div> <content></content> <div class="td">e</div> <div class="td">f</div> </template> </dom-module>
А затем использовать его как
<div class="table"> <!-- `.table` needs styling from outside --> <some-td-wrapper> <div class="td">c</div> <div class="td">d</div> </some-td-wrapper> </div>
Я решил эту проблему, просто удалив
<tr>
из уравнения.<table> <thead> <th>Name</th> <th>Date</th> </thead> <tbody> <template is="dom-repeat" items="[[items]]"> <custom-component item="{{item}}"></custom-component> </template> </tbody> </table>
Шаблон пользовательского компонента выглядит следующим образом:
<template> <td>{{item.name}}</td> <td>{{item.date}}</td> </template>
А затем я добавил стиль для пользовательского компонента в компоненте, использующем его, сказав:
custom-component { display: table-row; }