鍍金池/ 問(wèn)答/HTML5  HTML/ 張?chǎng)涡瘛禖SS世界》第二章的一個(gè)例子的疑問(wèn),關(guān)于:active火狐和chrome

張?chǎng)涡瘛禖SS世界》第二章的一個(gè)例子的疑問(wèn),關(guān)于:active火狐和chrome的支持不同?

clipboard.png

clipboard.png

第一個(gè)問(wèn)題:

書(shū)中給的在線demo:http://demo.cssworld.cn/2/2-1...

在這個(gè)頁(yè)面確實(shí)是用firefox,第二個(gè)按鈕按下去沒(méi)有顏色變化,但是我用給的代碼用Chrome和firefox兩個(gè)瀏覽器都是一樣的效果,代碼如下:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <style>
        .active-btn {
            display: inline-block; 
            background-color: #cd0000;
        }
        .active-btn:active {
            background-color: #ae0000;
        }
    </style>

    <script>
        var button = document.getElementById("button");
        if (button.addEventListener) {
            button.addEventListener("mousedown", function(event) {
                // 此處省略N行
                event.preventDefault();    
            });
        }      
    </script>
</head>
<body>
    <a href="javascript:" class="active-btn">按下</a>
    <a href="javascript:" id="button" class="active-btn">按下</a>
</body>
</html>

是firefox現(xiàn)在彌補(bǔ)了么,而這個(gè)demo頁(yè)面用的是老版本的firefox的解釋器嗎?

第二個(gè)問(wèn)題:

書(shū)中說(shuō)阻止按鈕的默認(rèn)行為可以讓拖動(dòng)效果更加流暢是什么意思?

第三個(gè)問(wèn)題:

preventDefault()是阻止默認(rèn)行為,默認(rèn)行為是指一般復(fù)選框可以被勾選,input可以被被輸入之類(lèi)的吧,為什么自己加的:active也能阻止?

回答
編輯回答
夢(mèng)囈

1.我用了58.0.2 的mac版Firefox,確實(shí)是和書(shū)上說(shuō)的一樣
2.就是說(shuō)阻止了a的默認(rèn)事件如果a被拖到的時(shí)候看起來(lái)會(huì)更加流暢
3.阻止默認(rèn)行為是只瀏覽器對(duì)每個(gè)標(biāo)簽的一些事件的默認(rèn)處理,比如a標(biāo)簽的點(diǎn)擊默認(rèn)事件是進(jìn)行跳轉(zhuǎn),至于為什么阻止a的默認(rèn)事件能阻止active偽類(lèi)的觸發(fā),得看Firefox為什么這樣實(shí)現(xiàn),如果標(biāo)準(zhǔn)是這樣的定義的,那么就是chrome實(shí)現(xiàn)的不對(duì)

2017年11月13日 21:03