【发布时间】:2014-03-10 00:42:27
【问题描述】:
我正在构建一个自定义元素来标记示例(在http://jsbin.com/kiboxuca/1/edit 使用它):
<script src="//cdnjs.cloudflare.com/ajax/libs/polymer/0.2.0/platform.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/polymer/0.2.0/polymer.js"></script>
<polymer-element name="my-example" noscript>
<template>
<style>
:host { display: inline }
</style>
[ <em>Example:</em>
<content></content>
— <em>end example</em> ]
</template>
</polymer-element>
<div>
Some text <my-example>Introduction
<pre>Some code here</pre>
More example</my-example>
</div>
这会产生我想要的外观:
一些文字[例子:介绍
Some code here更多示例 - 结束示例 ]
但是,因为它使<my-example> 元素display:inline 我担心块级<pre> 元素会导致问题。
将<my-example> 设置为display:block 会强制它从新行开始,这与我需要模仿的PDF 不一致。
像这样违反 CSS 盒子模型会出现什么样的问题,我该如何缓解这些问题?
【问题讨论】:
-
一个已知问题是
<p>元素在<pre>之前自动关闭,但这是 HTML 解析器的问题,而不是 CSS 框模型的问题,我可以通过替换<pre>带有一个新的自定义元素来包装它。 -
默认元素是
display: inline,所以你可以放弃<style>。<p>关闭很烦人。我不得不将内容更改为<div>以获取 PDF 中的一些示例:jsbin.com/xapevika/2/edit -
如果您想要内联渲染但能够包含块级元素的内容,请尝试
display: inline-block。 -
@ScottMiles,不幸的是,
inline-block使示例呈现为“Some text”开头的行内的单个框:jsbin.com/kiboxuca/4/edit
标签: css polymer shadow-dom