※ 引述《danny0838 (道可道非常道)》之铭言:
: 如题,设计 bookmarklet 或 browser extension 时,
: 往往会有些透过 javascript 在目前浏览的网页上建立 HTML 元素,
: 比如我要设计一个书签小工具,点击即建立一个控制选单,
: 大概通常会产生 div, table, tr, td, p, span, strong, code
: 但这些元素的样式可能被目前网页的 CSS 覆写,
: 如有奇葩的 CSS 宣告,比如 span { display: block; } 之类的,
: 这些动态产生的元素的样式往往会被覆写,造成难以预期的排版破坏。
: 实务上有哪些好方法能把这些动态产生的 HTML 固定为想要的样式,而不被覆蓋呢?
动态产生的 html如果对版面、位置有要求的话,
我会把产生的 html append在 body最后面,
然后使用绝对定位、绝对大小来控制样式。
尽量简化 extension需要的样式,不要假设有 css reset之类的东西。
====分隔线====
span { display: block; } 这么奇葩的样式我觉得不能算是常见的情况;
如果这是因为网页原设计人员没有 sense
→ 责任不在设计 extension的人
或是因为特殊原因要调整 html tag的默认值(通常是字型啊、颜色之类的设定…)
→ 我觉得应该要保持一致,设计 extension的人不应该调整
原网页样式可以影响到 extension,
extension样式绝对不能影响到原网页。
: 我知道可以把所有可能的 CSS 样式值全部写进 inline style,
: 不过这实在是太冗长、太麻烦了orz