Polymer 1.0 中的简单样式
Simple styling in Polymer 1.0
在对 0.5 做了一些工作后,我正试图掌握 Polymer 1.0。我正在努力解决 应该 是一个非常简单的样式问题。我似乎无法将样式应用于自定义元素。
这是我的元素定义,my-element.html
:
<link rel="import" href="../core/polymer/polymer.html">
<dom-module id="my-element">
<template><h1>Hello World</h1></template>
</dom-module>
<script>
Polymer({
is: 'my-element',
});
</script>
这是使用它的主页,index.html
:
<!doctype html>
<html>
<head>
<script src="../core/webcomponentsjs/webcomponents-lite.min.js"></script>
<link rel="import" href="my-element.html">
</head>
<body>
<my-element></my-element>
</body>
</html>
这工作正常...但现在假设我想在 my-element
的实例上添加样式。我将此添加到 index.html
:
<style>
my-element {
margin-top: 50px;
}
</style>
没有任何反应,没有增加保证金。奇怪的是,Chrome 中的元素检查器似乎没有 "see" 自定义元素,看起来它漂浮在页面之外并且没有包含其中包含的元素。见截图:
我最初怀疑 Chrome 中存在错误,但在 Firefox 中也是同样的问题。
感谢任何帮助,非常感谢。
因为 my-element
不是默认的 DOM 元素,你应该 "enable" 它,就像那些 html5 shivs 为不理解新的旧浏览器做的那样html5 个元素
var XFoo = document.registerElement('my-element');
document.body.appendChild(new XFoo());
document.registerElement() 的第一个参数是元素的标签名称。该名称必须包含破折号 (-)。因此,例如, 、 和 都是有效名称,而 和 则不是。此限制允许解析器将自定义元素与常规元素区分开来,但也确保在将新标记添加到 HTML.
时向前兼容
第二个参数是描述元素原型的(可选)对象。这是向您的元素添加自定义功能(例如 public 属性和方法)的地方。
尝试将属性 is="custom-style"
放在样式标签上。
<style is="custom-style">
...
</style>
此外,默认情况下,元素将内联显示,但您可以通过在元素 :host
样式中应用显示 属性 来更改此设置。
<dom-module id="my-element">
<style>
:host {display: block;}
</style>
<template>
...
</template>
</dom-module>
在对 0.5 做了一些工作后,我正试图掌握 Polymer 1.0。我正在努力解决 应该 是一个非常简单的样式问题。我似乎无法将样式应用于自定义元素。
这是我的元素定义,my-element.html
:
<link rel="import" href="../core/polymer/polymer.html">
<dom-module id="my-element">
<template><h1>Hello World</h1></template>
</dom-module>
<script>
Polymer({
is: 'my-element',
});
</script>
这是使用它的主页,index.html
:
<!doctype html>
<html>
<head>
<script src="../core/webcomponentsjs/webcomponents-lite.min.js"></script>
<link rel="import" href="my-element.html">
</head>
<body>
<my-element></my-element>
</body>
</html>
这工作正常...但现在假设我想在 my-element
的实例上添加样式。我将此添加到 index.html
:
<style>
my-element {
margin-top: 50px;
}
</style>
没有任何反应,没有增加保证金。奇怪的是,Chrome 中的元素检查器似乎没有 "see" 自定义元素,看起来它漂浮在页面之外并且没有包含其中包含的元素。见截图:
我最初怀疑 Chrome 中存在错误,但在 Firefox 中也是同样的问题。
感谢任何帮助,非常感谢。
因为 my-element
不是默认的 DOM 元素,你应该 "enable" 它,就像那些 html5 shivs 为不理解新的旧浏览器做的那样html5 个元素
var XFoo = document.registerElement('my-element');
document.body.appendChild(new XFoo());
document.registerElement() 的第一个参数是元素的标签名称。该名称必须包含破折号 (-)。因此,例如, 、 和 都是有效名称,而 和 则不是。此限制允许解析器将自定义元素与常规元素区分开来,但也确保在将新标记添加到 HTML.
时向前兼容第二个参数是描述元素原型的(可选)对象。这是向您的元素添加自定义功能(例如 public 属性和方法)的地方。
尝试将属性 is="custom-style"
放在样式标签上。
<style is="custom-style">
...
</style>
此外,默认情况下,元素将内联显示,但您可以通过在元素 :host
样式中应用显示 属性 来更改此设置。
<dom-module id="my-element">
<style>
:host {display: block;}
</style>
<template>
...
</template>
</dom-module>