2012-09-20 96 views

回答

2

内联样式至高无上。

你可以做到这一点,但你需要使用JavaScript来做到这一点。代码将不得不从粘贴的代码中删除所有内联样式语句。无论如何,这是一个好主意,你永远不知道人们会粘贴什么。

使用jQuery:

$('.wrapper *').removeAttr('style'); 

...您的内容是一类 “包装”

+0

我觉得如果你只是希望重写字体面内嵌样式,这种解决方案是矫枉过正。不妨在这里重新编码所有的CSS – potench

2

的专区内,您不需要为这个JavaScript。尽管你说什么,!important确实足够。

测试用例:http://jsfiddle.net/jezen/Z4rnv/

说明:CSS规则是基于特异性的水平,这是由布局引擎计算选择。 !important规则不是一个全面包容的修饰符;它只是增加了额外的权重,在特定的层次上各自的规则。

+1

当一些白痴已经使用!inline style重要的时候会发生什么? –

+0

这是一个公平点。我仍然不喜欢你的解决方案,但我收回了我的downvote。 –

+0

你说得对,'!重要的'应该够了......但是你必须把它设置在'* {}'上。也许考虑改变你的答案更具体 - '* {font-family:“Whatevs”!important;}' – potench

0

使用jQuery删除属性函数应该做的伎俩。

removeAttr('style'); 
3

您可以使用该字体的家庭分配到使用!important符,例如所有相关元素的CSS代码重写内联样式

* { font-family: Calibri !important; } 

仅设置字体是不够的,例如只是在body元素上,因为内部元素的字体由适用于它们的规则控制。内部元素仅在其父级继承字体 CSS规则设置内部元素的字体。

如果有人能够注入具有!important的内联样式,那么您无法在CSS中击败该样式。您需要使用JavaScript处理文档,删除或更改style属性。

0

我对其他两个答案的非特定性质并不满意。

* { font-family: Calibri !important; }

不会总是工作有时你需要更具体,例如,跨度

span { font-family: Calibri !important; }

打交道时,因为是不够具体,因为虽然你要添加的值很重要。

同样的字体样式事项的类型,如果最初的字体样式只是使用字体如font-系列和字体大小是更具体的已经这么使用

span { font:15px arial,sans-serif; !important; }

不会重写一个的

<span style="font-family: Calibri">Hello World</span>

+0

非常好的想法!但是,就我而言,如果内容编辑将插入样式到div和列表和段落中,而不仅仅是跨度,以及如果他们正在更改颜色和大小,而不仅仅是字体。看到它变得复杂,这就是为什么更多*通用*解决方案在这里为我的案件工作。 :-) –