todas son lista las funciones etiquetas elementos ejemplos cuales caracteristicas basicos basicas atributos html focus

son - todas las etiquetas de html y sus atributos



¿Qué elementos HTML pueden recibir atención? (6)

El: selector de enfoque está permitido en elementos que aceptan eventos de teclado u otras entradas del usuario.

http://www.w3schools.com/cssref/sel_focus.asp

Estoy buscando una lista definitiva de elementos HTML que se pueden enfocar, es decir, ¿qué elementos se pondrán en foco cuando se llame a focus() ?

Estoy escribiendo una extensión de jQuery que funciona con elementos que se pueden enfocar. Espero que la respuesta a esta pregunta me permita ser específico sobre los elementos a los que me dirijo.


Aquí tengo un selector de CSS basado en la answer para seleccionar cualquier elemento HTML :

a[href]:not([tabindex=''-1'']), area[href]:not([tabindex=''-1'']), input:not([disabled]):not([tabindex=''-1'']), select:not([disabled]):not([tabindex=''-1'']), textarea:not([disabled]):not([tabindex=''-1'']), button:not([disabled]):not([tabindex=''-1'']), iframe:not([tabindex=''-1'']), [tabindex]:not([tabindex=''-1'']), [contentEditable=true]:not([tabindex=''-1'']) { /* your CSS for focusable elements goes here */ }

O un poco más bonito en SASS:

a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, [tabindex], [contentEditable=true] { &:not([tabindex=''-1'']) { /* your SCSS for focusable elements goes here */ } }

Lo agregué como respuesta, porque eso era, lo que estaba buscando, cuando Google me redirigió a esta pregunta de .

EDITAR: Hay un selector más, que es enfocable:

[contentEditable=true]

Sin embargo, esto se usa muy raramente.



No hay una lista definida, depende del navegador. El único estándar que tenemos es DOM Level 2 HTML , según el cual los únicos elementos que tienen un método focus() son HTMLInputElement, HTMLSelectElement, HTMLTextAreaElement y HTMLAnchorElement. Esto omite notablemente HTMLButtonElement y HTMLAreaElement.

Los navegadores de hoy definen focus() en HTMLElement, pero un elemento no se enfocará a menos que sea uno de los siguientes:

  • HTMLAnchorElement / HTMLAreaElement con un href
  • HTMLInputElement / HTMLSelectElement / HTMLTextAreaElement / HTMLButtonElement pero no con disabled (IE realmente te da un error si lo intentas), y las cargas de archivos tienen un comportamiento inusual por razones de seguridad
  • HTMLIFrameElement (aunque enfocarlo no hace nada útil). Otros elementos de incrustación también, tal vez, no los he probado todos.
  • Cualquier elemento con un tabindex

Es probable que haya otras excepciones sutiles y adiciones a este comportamiento dependiendo del navegador.



$focusable: ''a[href]'', ''area[href]'', ''button'', ''details'', ''input'', ''iframe'', ''select'', ''textarea'', // these are actually case sensitive but i''m not listing out all the possible variants ''[contentEditable=""]'', ''[contentEditable="true"]'', ''[contentEditable="TRUE"]'', ''[tabindex]:not([tabindex^="-"])'', '':not([disabled])'';

Estoy creando una lista SCSS de todos los elementos enfocados y pensé que esto podría ayudar a alguien debido al rango de Google de esta pregunta.

Algunas cosas a tener en cuenta:

  • Cambié :not([tabindex="-1"]) a :not([tabindex^="-"]) porque es perfectamente plausible generar -2 alguna manera. Mejor prevenir que lamentar, ¿verdad?
  • Agregar :not([tabindex^="-"]) a todos los otros selectores enfocables es completamente inútil. Cuando use [tabindex]:not([tabindex^="-"]) ya incluye todos los elementos con los que estaría negando :not ¡ :not !
  • Incluí :not([disabled]) porque los elementos deshabilitados nunca pueden ser enfocados. Así que de nuevo es inútil agregarlo a cada elemento.