textnodes を直接の子として含む body elemnt がありますが、patragraphs もあります。ここで、このテキストノードが特定の css 設定を取得できるように css を作成したいと思います。一方、階層のより深いところにあるテキストノード (つまり、段落の 1 つの子) のスタイルを設定したくありません。
直接の子ではないテキストノードをスタイリングせずに、ボディ要素の直接の子であるこのテキストノードをスタイルするにはどうすればよいですか?
知る限り(質問を誤解していない場合)、できません-段落または他の子要素のスタイルをオーバーライドする必要があります。私はこのようにします:
/* for direct text-nodes */
body{
color: red;
}
/* maybe its possible to use "body *" here,
wich sounds like what you need, but i've
never tested this
*/
body p{
color: black; /* "default" value here*/
}
では、次のように定義するのはどうでしょうか:
と
body { /* テキストノードのスタイルをここに */ }
例えば
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<style type="text/css">
body {color:red}
body * {
color:blue;
}
</style>
</head>
<body>
sdfsdfsd
<ul>sdfs
<li>Coffee <i>- black hot drink</i></li>
<li>Coca Cola <i>- black cold drink</i></li>
</ul>
jdtzje<div>some div content</div>
<ul>
<li>Coffee <i>- black hot drink</i></li>
<li>Coca Cola <i>- black cold drink</i></li>
</ul>fdsfs
<p><b>Note:</b> For :first-child to work in IE, a DOCTYPE must be declared.</p>
</body>
</html>
私の知る限り、テキストノードを直接ターゲットにする方法はありません。
BODY のテキスト ノード スタイルを設定してから、P にさまざまなスタイルを適用できます。
または、テキストノードを SPAN に配置して、スタイルを設定することもできます。
このチュートリアルを確認してください: http://www.w3schools.com/css/tryit.asp?filename=trycss_first-child5
編集:ここに例があります
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<style type="text/css">
li>i:first-child
{
color:red;
}
</style>
</head>
<body>
<ul>
<li>Coffee <i>- black hot drink</i></li>
<li>Coca Cola <i>- black cold drink</i></li>
<li>Test <p>- some text here that's not affected!</p></li>
</ul>
<ul>
<li>Coffee <i>- black hot drink</i></li>
<li>Coca Cola <i>- black cold drink</i></li>
</ul>
<p><b>Note:</b> For :first-child to work in IE, a DOCTYPE must be declared.</p>
</body>
</html>