2012-02-03 81 views

回答

5

如果你的問題是隱藏的領域是否可以從可見的領域偷自動對焦,答案是否定的。

具有autofocus屬性的隱藏字段在顯示時會獲得焦點。

下面是一個jsFiddle,它顯示瞭如果您有可見區域和隱藏區域會發生什麼,然後顯示隱藏的區域。

這裏是一個variation,演示如果可見字段沒有autofocus屬性時會發生什麼情況。

+0

謝謝你的小提琴,但它不適用於我的優勝美地Mac上的Chrome 43.0.2357.132。 – pilau 2015-07-14 15:12:47

1

HTML5 draft standard只要求一個元件是「可聚焦」,其中可聚焦手段:

元素是可聚焦如果用戶代理的默認行爲,使得它 要成爲焦點,或者如果元件是特別可聚焦,但僅當 元素正在呈現或者是代表嵌入內容的畫布 元素的後代。 用戶代理應進行如下元素可聚焦,除非平臺慣例規定,否則:

  • 具有href屬性,它具有href屬性沒有被禁用
  • 按鈕元素
  • 鏈接元素的元素
  • 輸入元素的類型屬性不處於隱藏狀態且未禁用
  • 選擇未禁用的元素
  • textarea未禁用
  • 命令元素的元素沒有被禁用的屬性
  • 元素與拖動屬性集,如果這將使用戶代理,以允許用戶開始對那些 元素拖動操作,而無需使用指點設備的
  • 編輯主持
  • 瀏覽上下文容器

它說:「但只有當元素是被渲染......」等標準定義「呈現」爲:

的元素所呈現,如果它是在一個文件中,或者它的父 節點本身被渲染,或者它是文檔節點,並且它是 沒有明確使用從呈現排除或者:

  • CSS的「display」屬性的「無」的值,或
  • 的「可視性」屬性的「崩潰」的值,除非它被視爲等同於「隱藏」的值,或
  • 在其他造型上相當於一些語言。 剛剛離開屏幕並不意味着該元素沒有被渲染。隱藏屬性的存在通常意味着 元素未呈現,儘管這可能會被 樣式表覆蓋。 不尊重作者級別CSS樣式表的用戶代理仍然會按照符合本規範和 相關CSS和Unicode規範的方式應用這些部分中給出的 中的CSS規則。

總之,答案似乎是,如果滿足所有其他要求,然後display:none不會集中,但display:hidden會 - 假設所有的瀏覽器實際上遵循的規範。