react-scoped-style
- support ie8,ie8+,chrome,firefox,safari
- does not support css priority (just apply rules by css order in source text)
- does not support css property inheritance (no shadow dom...)
- does not support :hover, :active ....
- does not support css media query
不支持css优先级(仅在源文本中按css顺序应用规则)
不支持css属性继承(没有影子dom…)
不支持伪类标签
不支持css媒体查询
所以有点鸡肋
import ScopedStyle, { createStyleSheet } from 'react-scoped-style';
import React from 'react';
import ReactDOM from 'react-dom';
var style = createStyleSheet(`
.test {
color:red;
zoom:1.5;
}
div>span{
color:green;
zoom:1.5;
}
`); var html = <div>
<p className="test">scope react element by transform external style into inline styles</p>
<p>
<a href="https://github.com/yiminghe/react-scoped-style">repo</a>
</p> <ScopedStyle style={style}>
<div>
<span>green zoom</span>
<span style={{color: 'blue'}}>blue zoom</span>
<p>
<span>black</span>
<span> - </span>
<a className='test'>red zoom</a>
</p> <ScopedStyle>
<a className='test'>black isolate</a>
</ScopedStyle> <ScopedStyle scoped={false}>
<a className='test'>red zoom penetrate</a>
</ScopedStyle>
</div>
</ScopedStyle>
</div>; ReactDOM.render(html, document.getElementById('__react-content'));
API
props
name | type | default | description |
---|---|---|---|
scoped | Boolean | true | whether isolated from outside |
style | String|ParsedCssResult | style to be applied |
methods
ParsedCssResult createStyleSheet(css:String) parse css into object
ReactElement transformElement(root:ReactElement, css:String|ParsedCssResult)