为什么我不能在 WebComponent 元素上设置大小

Why I cannot set sizes on a element that is a WebComponent

我正在尝试使用 :host 选择器在 WebComponent 中设置 widthheight,但大小没有改变。这是组件的模板:

<template>
  <style>
    :host {
      width: 100px;
      height: 100px;
      background-color: rebeccapurple;
    }
  </style>

  <h1>Content</h1>
</template>

我需要做的是添加一个div作为容器并设置它的大小

<template>
  <style>
    div {
       width: 100px;
       height: 100px;
       background-color: rebeccapurple;
    }
  </style>

  <div>
    <h1>Content</h1>
  </div>
</template>

我想了解为什么这是不可能的及其原因。或者有没有更好的办法解决。

这是它的一个 JSBin:http://jsbin.com/gesovagapi/edit?html,css,js,output

默认情况下,自定义组件是使用 display: inline; 创建的。如果您希望您的组件采用指定的 width/height,请将其 display 属性 设置为 blockinline-block。例如:

  <style>
    :host {
      display: inline-block;
      width: 100px;
      height: 100px;
      background-color: rebeccapurple;
    }
  </style>