CSS ::part伪元素与Shadow DOM slot样式实例页面
回到相关文章 »效果:
张鑫旭-鑫空间-鑫生活
帅锅一枚
文字颜色红色么?下划线有了么?
代码:
CSS代码:
zxx-info::part(img) { width: 81px; height: 100px; } zxx-info::part(description) { display: flow-root; color: deepskyblue; font-family: system-ui; } /* 无效 */ zxx-info::part(description) p { color: red; } /* 有效 */ zxx-info p { border-bottom: 1px dashed; }
HTML代码:
<zxx-info> <p slot="description">张鑫旭-鑫空间-鑫生活</p> <p slot="description">帅锅一枚</p> <p slot="description">文字颜色红色么?下划线有了么?</p> </zxx-info> <template id="tplZxxInfo"> <style> :host { display: flow-root; } img { float: left; margin-right: 10px; } p { margin: .5em 0;} </style> <img part="img" src="zxx.jpg"> <slot name="description" part="description">这是显示描述信息</slot> </template>
JS代码:
// 定义<zxx-info> class ZxxInfoElement extends HTMLElement { constructor() { super(); // 内部显示信息 let template = document.getElementById('tplZxxInfo'); let templateContent = template.content; const shadowRoot = this.attachShadow({mode: 'open'}).appendChild(templateContent.cloneNode(true)); } }; // 注册 customElements.define('zxx-info', ZxxInfoElement);