css不常見屬性之pointer-events

MDN 上介紹爲 CSS 屬性指定在什麼狀況下 (若是有) 某個特定的圖形元素能夠成爲鼠標事件的 target。
pointer-events 屬性值有:css

/* Keyword values */
pointer-events: auto;
pointer-events: none;
pointer-events: visiblePainted; /* SVG only */
pointer-events: visibleFill;    /* SVG only */
pointer-events: visibleStroke;  /* SVG only */
pointer-events: visible;        /* SVG only */
pointer-events: painted;        /* SVG only */
pointer-events: fill;           /* SVG only */
pointer-events: stroke;         /* SVG only */
pointer-events: all;            /* SVG only */

/* Global values */
pointer-events: inherit;
pointer-events: initial;
pointer-events: unset;

其中默認屬性爲 auto。 當值爲none表示鼠標事件「穿透」該元素而且指定該元素「下面」的任何東西。html

使用場景

拋卻只適用於svg的值,說一說 none 的使用場景。 mdn上的解釋不太好理解。 網友敘帝利 給出了一種使用場景。
我這裏還有一中使用場景是 當用div元素經過css樣式模擬按鈕時,能夠使用 pointer-event: none 模擬button禁止點擊。
好比:svg

// html
<div class="point" onclick="alert('ok')提交申請</div>
.point {
    width: 1.8rem;
    height: .44rem;
    margin: 0 auto;
    margin-top: 0.8rem;
    text-align: center;
    line-height: .44rem;
    border-radius: 22px;
    color: #fff;
    background-color: rgba(67,76,94,.43);
    pointer-events: none;
}

此時該div的樣子,若是不設置pointer-events: none; 只是樣子不可點擊,點擊仍是會觸發事件響應的。 加上則不會響應click事件了。
spa

相關文章
相關標籤/搜索