當我們用 方向鍵 在 html頁面 上移動,此時,可通過多種方式控制焦點行為:
1、通過 js 邏輯,控制焦點的移動,此時下乙個焦點位置,完全是由 js 來控制
2、可通過瀏覽器預設行為,瀏覽器會計算焦點的位置,響應上下左右按鍵是通過 各個焦點相對位置 來確定下乙個焦點
注:
1、當頁面通過 js 邏輯控制焦點時,要新增
event.preventdefault()
來阻止瀏覽器的預設焦點行為,以防止焦點被多次處理
2、瀏覽器 判定 焦點位置的時候,會通過多個條件來判定
<1>從 dom 樹遍歷結點,找出在移動方向上的結點,比如,按方向右鍵時,在當前結點左邊以及正上、正下的結點都被 pass
<2>從上面找出的可能結點中,計算每個candidate跟當前結點的距離,並跟最近的結點對比,
如小於最近結點,則設此結點為最近結點【findfocuscandidateincontainer】
<3>判斷 candidate 跟當前結點方向是否完全在一條直線上(aligned),平行結點優先於部分平行結點,
即 正對的 優先於 斜對的,
新增次條件以為,計算兩個結點距離時,結點通常不是乙個點,而是有寬高,
距離獲取的都是最近的部分,可能相等
<4>兩個 candidate 可能有重合部分,此時,瀏覽器會通過 hittest 演算法,來判斷究竟是哪個結點優先,
但在 hittest 時,可能
存在後乙個結點蓋住前面結點部分區域的問題,這個還要看情況來判斷
設定預設瀏覽器
常用的設定預設瀏覽器的方法可以參考 這裡面列出了常用的幾種瀏覽器的設定方法,比較直觀,其設定方式都是一樣的,都是通過瀏覽器更改登錄檔的值,現在我給出修改的值的登錄檔的位置 在userchice右面有鍵progid,他的值就是預設開啟方式 谷歌鍵值 將progid設定為 chromehtml 即可 火...
瀏覽器預設樣式
1.頁邊距 ie預設為10px,通過body的margin屬性設定 ff預設為8px,通過body的padding屬性設定 要清除頁邊距一定要清除這兩個屬性值 body 2.段間距 ie預設為19px,通過p的margin top屬性設定 ff預設為1.12em,通過p的margin bottom屬...
瀏覽器預設樣式
html預設樣式 html,address,blockquote,body,dd,div,dl,dt,fieldset,form,frame,frameset,h1,h2,h3,h4,h5,h6,noframes,ol,p,ul,center,dir,hr,menu,pre 以上列表元素預設狀態下一...