クライアントのCSSの影響を受けるCSSスタイルをコンポーネント内でリセットする必要があります。これを行う1つの方法は、CSS all
propertyを使用することです。
CSSのすべての短縮形プロパティは、Unicode-bidiおよびdirection以外のすべてのプロパティを初期値または継承値にリセットします。
このソリューションの問題は、IEまたはEdgeではサポートされていません。all
です。
var style = {
navigation: {
all: 'initial',
minWidth: '50px ',
position: 'relative ',
marginBottom: '20px ',
border: '1px solid transparent '
},
};
render function() {
return(<nav style={style.navigation}> ...... </nav>);
}
ここでこの動作の例です - せず、他のCSS all: initial
プロパティを使用して、いずれかを同じ<Nav />
コンポーネントを示します。これまで述べたように、Internet ExplorerやEdgeでは動作しません。
class Nav extends React.Component {
render() {
var style = {
navigationWithAll: {
all: 'initial',
border: '1px solid red'
},
navigation: {
minWidth: '50px ',
position: 'relative ',
marginBottom: '20px ',
border: '1px solid red'
}
};
return (
<div>
<nav style={style.navigation}>Navigation</nav>
<nav style={style.navigationWithAll}>Navigation</nav>
</div>
)
}
}
ReactDOM.render(
<Nav />,
document.getElementById('app')
);
nav {
height: 100px;
background-color: gray;
font-family: "Comic Sans MS";
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="app"></div>
あなたはおそらくそうであるIEまたはエッジを、サポートする必要がある場合は、継承されている特定のCSSプロパティをリセットする必要があります。これは、次のような単純なもので行うことができます。
styles = {
navigation: {
height: 'initial'
}
}
が、すべてのクライアントのサイト間で機能するであろう、より堅牢なソリューションでは、CSSコンポーネントのリセットをインポートすることです。
reset = {
margin: 'initial',
padding: 'initial',
height : 'auto',
height: 'initial',
width: 'auto',
// any other properties you want to reset, or a full list of CSS properties to reset to initial/auto
}
}
は、その後、それは明らかに、これらのCSSを取り上げる
import reset from 'reset'
styles = {
navigation: {
...reset,
border: 1px solid red,
// your custom styles
}
}
コンポーネントのスタイルには、このリセットをインポートします。あなたはそれらを無効にするか、それらの不要なスタイルを削除することができます – Piyush
ちょっとpiyush。返信いただきありがとうございます。しかし、それはクライアントのCSSページからです。リセットは唯一の方法です。 ? –
は実際にリセットされません。それは方法であり、あなたは異なるタグに対してもclassNamesを提供することができます。 – Piyush