要素とその境界線に異なるカーソルを設定する方法は? 疑似要素 ? 方法はありますか?注: はい、JS 経由で実行できます。単一の要素で純粋な CSS を使用する方法を探していました。
質問する
12707 次
3 に答える
9
それはたくさんの HTML/CSS コードですが、そのようなものが役に立ちます:
.container {
position: relative;
}
.crop {
position: absolute;
top: 10px;
left: 100px;
width: 100px;
height: 100px;
transition: all 0.25s;
cursor: move;
}
.crop .crop-line {
position: absolute;
transition: all 0.25s;
}
.crop:hover .crop-line {
border-color: rgba(123,53,132,1);
}
.crop .crop-top-line {
top: 0;
left: 0;
right: 0;
height: 5px; /* 5px for the mouse cursor update size */
border-top: 1px solid rgba(204,31,48,1); /* 1px for the "border" size */
cursor: n-resize;
}
.crop .crop-bottom-line {
bottom: 0;
left: 0;
right: 0;
height: 5px; /* 5px for the mouse cursor update size */
border-bottom: 1px solid rgba(204,31,48,1); /* 1px for the "border" size */
cursor: s-resize;
}
.crop .crop-left-line {
top: 0;
left: 0;
bottom: 0;
width: 5px; /* 5px for the mouse cursor update size */
border-left: 1px solid rgba(204,31,48,1); /* 1px for the "border" size */
cursor: w-resize;
}
.crop .crop-right-line {
top: 0;
right: 0;
bottom: 0;
width: 5px; /* 5px for the mouse cursor update size */
border-right: 1px solid rgba(204,31,48,1); /* 1px for the "border" size */
cursor: e-resize;
}
.crop .crop-corner {
position: absolute;
width: 6px;
height: 6px;
border-radius: 2px;
border: 1px solid #808080;
background: #FFF;
opacity: 0;
transition: all 0.25s;
}
.crop .crop-top-left-corner {
top: -3px;
left: -3px;
cursor: nw-resize;
}
.crop .crop-top-right-corner {
top: -3px;
right: -3px;
cursor: ne-resize;
}
.crop .crop-bottom-left-corner {
bottom: -3px;
left: -3px;
cursor: sw-resize;
}
.crop .crop-bottom-right-corner {
bottom: -3px;
right: -3px;
cursor: se-resize;
}
.crop:hover .crop-corner {
opacity: 1;
}
<div class="container">
<div class="crop">
<div class="crop-line crop-top-line"></div>
<div class="crop-line crop-right-line"></div>
<div class="crop-line crop-bottom-line"></div>
<div class="crop-line crop-left-line"></div>
<div class="crop-corner crop-top-left-corner"></div>
<div class="crop-corner crop-top-right-corner"></div>
<div class="crop-corner crop-bottom-right-corner"></div>
<div class="crop-corner crop-bottom-left-corner"></div>
</div>
</div>
于 2016-10-02T02:58:49.583 に答える
5
このcursor
プロパティは、ボーダーを含む要素の領域全体のポインター (CSS では奇妙なことに「カーソル」と呼ばれます) の形状に影響するため、これを行う直接的な方法はありません。
JavaScript を使用して要素のコンテンツ領域を決定し、コンテンツの追加要素が導入されるように DOM を変更すると、内側の要素と外側の要素に異なる「カーソル」を設定できます。
ただし、通常はマークアップでそのようなことを行う方が簡単であり、そのために JavaScript はまったく必要ありません。
<div id=foo><div id=foo-content>...</div></div>
これで、両方の要素に境界線を#foo
設定して設定できるようになりました。cursor
オンに設定された「カーソル」#foo
は、境界線のみに適用されます。
于 2012-10-19T05:59:05.643 に答える
4
:before
Firefoxではカーソル:after
プロパティを許可しているようですが、 Chromeでは許可していません。
http://jsfiddle.net/ZLZZG/でデモを見ることができますが、実際には、要素をラップしてラッパーにカーソルを与える方がよいでしょう。
更新:この編集の時点 (2015 年 4 月 6 日) では、これは Chrome で動作するようになりました。
于 2012-10-19T05:54:24.573 に答える