私はdivを持っています
<div id="box">
content content
content content <a href="#">content</a>content
</div>
リンクの上にマウスを置くと、リンクの色とdivの背景色を変更したいと思います。cssのみを使用していますが、cssのみを使用することは可能ですか?私を助けてください。
parent
ターゲット要素のCSSセレクターはありません。しかし、いくつかのトリックで欲望の効果を達成することができます。このように書く:
#box a:hover:after{
content:'';
position:absolute;
top:0;
left:0;
right:0;
bottom:0;
background:red;
z-index:-1;
}
これをチェックしてくださいhttp://jsfiddle.net/V4qDm/3/
これが実用的なフィドルです:
このCSSを追加する
#box.hover{background:#cb2326;}
#box a{display:inline-block;}
#box a:hover{color:#fff;}
このJqueryを追加します:
$('a').hover(function(){
$(this).parent().toggleClass('hover');
});
リンクの色は次を使用して変更できます
a:hover{color:#ccc;}
ただし、css3またはcss2を使用して子から親要素にアクセスすることはできません。
これは、css4で$signとともに提供されています。
$div>a:hover{background:#ccc;}
しかし現在、それをサポートしているブラウザはありません
親の背景を変更するには、JavaScriptを調べる必要があります。
divで使用でき:hover
ます。これは、現在ユーザーが非常に少ないIE6を除くすべてのブラウザーでサポートされています。
div#box:hover {
background-color: #whatever;
}
編集:もちろん、私はその質問を完全に誤解しました。お詫びします!他の人が指摘しているように、子要素がCSSでの親の外観を変更することはできません(少なくともCSS4まで)。親がトリガーとして機能することが許容される場合は、上記が機能します。もちろん、リンクの外観を同時に変更することもできます。
div#box:hover a {
color: #somecolour;
}
*) statcounter.comによると0.66%
javascriptの使用を検討する必要があります。これにより、単純なタスクが作成されます。単純!
ヘッダーに以下を追加します。
<script type="text/javascript">
function changeDivAndLink(linkid, divid){
document.getElementById(linkid).setColor(...);
document.getElementById(divid).setBackground(...);
}
</script>
次に、コードに対して行う必要があるのは、マウスオーバーを追加することだけです。
<div id="box">
content content
content content <a href="#">content</a>content
</div>
スクリプトを使用せずに実際にやりたいと思っていたのは知っていますが、最近ではjavascriptが広くサポートされているため、JavaScriptをサポートしていないブラウザの割合はごくわずかです。
これが一部の人に役立つことを願っています。
div全体をリンクとして機能させるには、アンカータグを次のようdisplay: block;
に設定します。次に、アンカータグの高さを100%に設定します。divタグの高さを固定サイズに設定します。
例:
<html>
<head>
<title>sample link</title>
<style type="text/css">
.container {
border: 1px solid #C9F;
width: 50%;
height: 20px;
}
.container a {
display: block;
background: #FC6;
height: 100%;
text-align: center;
}
.container a:hover {
background: #996699;
color:#FFF;
}
</style>
</head>
<body>
<div class="container">
<a href="http://www.stackoverflow.com">Stack Overflow</a>
</div>
</body>
</html>