contenido-incrustado.rst 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794
  1. .. 4.7
  2. ====================
  3. Contenido incrustado
  4. ====================
  5. Se trata de importar otro recurso o inserta el contenido de otro
  6. lenguaje de marcado o elementos en un documento HTML.
  7. El elemento ``picture``
  8. =======================
  9. Es un contenedor que proporciona múltiples formatos al elemento ``<img>``,
  10. contenido que permite a los autores controlar o dar sugerencias al
  11. navegador web sobre qué recurso de imagen utilizar, basado
  12. en la densidad de píxeles de la pantalla, el tamaño de la ventana de la vista,
  13. formato de la imagen y otros factores que representan las características
  14. de una imagen.
  15. El elemento ``<picture>`` es algo diferente de los elementos ``<video>``
  16. y ``<audio>``. Todos ellos contienen elementos de origen, el atributo
  17. ``src`` del elemento origen no tiene significado cuando el elemento está
  18. anidado dentro de un elemento ``<picture>`` y el algoritmo de selección de recursos es
  19. diferente. Además, el elemento ``<picture>`` en sí no muestra nada;
  20. Simplemente proporciona un contexto para el contenido del elemento ``<img>`` que le
  21. permite elegir entre múltiples URL.
  22. .. code-block:: html
  23. <picture>
  24. <source media="(min-width: 45em)" srcset="large.jpg">
  25. <source media="(min-width: 32em)" srcset="med.jpg">
  26. <img src="small.jpg" alt="El lobo corre sobre la nieve.">
  27. </picture>
  28. El elemento ``source`` cuando es usado con el elemento ``picture``
  29. ==================================================================
  30. Los requisitos de creación de esta sección sólo se aplican si el elemento
  31. ``<source>`` tiene un elemento primario que es un elemento ``<picture>``.
  32. El elemento ``<source>`` permite a los autores especificar múltiples conjuntos
  33. de fuentes alternativos para los elementos ``<img>``, por sí solo no representa nada.
  34. El elemento ``img``
  35. ===================
  36. Representa una imagen en el documento.
  37. Los navegadores no siempre muestran la imagen a la que el elemento hace referencia.
  38. Es el caso de los navegadores no gráficos (incluyendo aquellos usados por personas
  39. con problemas de visión), si el usuario elige no mostrar la imagen, o si el
  40. navegador es incapaz de mostrarla porque no es válida o no es soportada.
  41. En ese caso, el navegador la reemplazará con el texto definido en el atributo ``alt``.
  42. .. code-block:: html
  43. <a href="https://w3.org">
  44. <img src="images/w3c_home.png" width="72" height="48" alt="W3C web site">
  45. </a>
  46. En ciertas situaciones se recomienda implementar la información de la imagen dentro
  47. del atributo ``alt`` , para asegurarse de que el usuario puede leer la información
  48. en caso de que la imagen no sea cargada por el navegador.
  49. .. code-block:: html
  50. <img src="piechart.gif"
  51. alt="Pie chart: Browser Share - Internet Explorer 25%, Firefox 40%,
  52. Chrome 25%, Safari 6% and Opera 4%.">
  53. Si la imagen que se va a mostrar es un *banner* del sitio web es posible dejar vacio
  54. el atributo ``alt``
  55. .. code-block:: html
  56. <header>
  57. <div><img src="banner.gif" alt="" width="400" height="30"></div>
  58. <h1>El Blog de Clara</h1>
  59. </header>
  60. <p>Bienvenido a mi Blog...</p>
  61. El elemento ``<img>`` se puede utilizar con los siguientes atributos:
  62. - ``crossorigin``. Este atributo enumerado indica si la búsqueda de la imagen debe ser por **CORS** o no.
  63. La imagen **CORS** habilitada puede ser usada en el elemento ``<canvas>`` sin ser pintada.
  64. - ``height``. La altura de la imagen en píxeles.
  65. - ``width``. El ancho de la imagen en píxeles
  66. - ``ismap``. Este atributo booleano indica que la imagen es parte de un mapa bit de imagenes
  67. del lado del servidor. Al pulsar sobre la imagen se envían los datos
  68. al servidor como una cadena (*Query string*) de tipo URL a la base de datos del servidor.
  69. Este atributo está permitido solo si el elemento ``<img>`` es descendiente de
  70. un elemento ``<a>`` con un atributo ``href`` válido.
  71. .. code-block:: html
  72. <a href="https://www.w3.org/html/logo/downloads/HTML5_Logo_512.png">
  73. <img src="HTML5_Logo_512.png" alt="HTML5_Logo" width="512" height="500" ismap>
  74. </a>
  75. - ``sizes``. Se trata de una lista de una o más cadenas de caracteres separadas por comas
  76. indicando el tamaño de la fuente.
  77. .. code-block:: html
  78. <h1>
  79. <img sizes="100vw" srcset="wolf-400.jpg 400w, wolf-800.jpg 800w, wolf-1600.jpg 1600w"
  80. ssrc="wolf-400.jpg" alt="El lobo blanco">
  81. </h1>
  82. - ``srcset``. Una lista de una o más cadenas separadas por comas indicando las posibles fuentes para usar.
  83. .. code-block:: html
  84. <h1>
  85. <picture>
  86. <source media="(max-width: 500px)" srcset="banner-phone.jpeg, banner-phone-HD.jpeg 2x">
  87. <img src="banner.jpeg" srcset="banner-HD.jpeg 2x" alt="Desayuno combinado">
  88. </picture>
  89. </h1>
  90. - ``usemap``. La URL parcial (**empezando con '#'**) de un mapa de imagen
  91. asociado a un elemento. No puedes usar este atributo si el elemento
  92. ``<img>`` es descendiente de un elemento ``<a>`` o ``<button>``.
  93. .. code-block:: html
  94. <p>Imagen que se muestra el mapa de Katoomba</p>
  95. <p><img src="https://www.w3.org/TR/html5/images/imagemap.png" width="209" alt="Mapa de Katoomba" height="249" usemap="#Map">
  96. <map name="Map">
  97. <area shape="poly" coords="78,124,124,10,189,29,173,93,168,132,136,151,110,130"
  98. href="north.html" alt="Casas del Norte de Katoomba">
  99. <area shape="poly" coords="66,63,80,135,106,138,137,154,167,137,175,133,144,240,49,223,17,137,17,61"
  100. alt="Casas del Sur de Katoomba" href="south.html">
  101. </map>
  102. Formatos de imagen soportados
  103. -----------------------------
  104. - JPEG
  105. - GIF, incluyendo animaciones GIFs
  106. - PNG
  107. - APNG
  108. - SVG
  109. - BMP
  110. - BMP ICO
  111. - PNG ICO
  112. El elemento ``iframe``
  113. ======================
  114. Elemento HTML ``<iframe>`` representa un contexto de navegación
  115. anidado, que permite incorporar otra página HTML en la página actual.
  116. Cada contexto de navegación tiene su propio historial, sesión y documento activo.
  117. El contexto de navegación que incluye el contenido implícito se llama **contexto
  118. de navegación principal**. El contexto de navegación de nivel superior que no tiene padre
  119. es la ventana del navegador.
  120. Desde el elemento ``<iframe>`` del DOM, los scripts pueden obtener acceso al objeto
  121. **window** de la página HTML incluida a través de la propiedad ``contentWindow``.
  122. La propiedad ``contentDocument`` se refiere al elemento del documento dentro del
  123. ``<iframe>`` (esto es equivalente a ``contentWindow.document``).
  124. Los scripts que intentan acceder al contenido de un ``<iframe>`` están sujetos a
  125. la misma reglas de origen del primer ``<iframe>`` y no pueden acceder a la mayoría de las propiedades
  126. del otro objeto ``Window`` si se cargó desde un dominio diferente. Esto también
  127. se aplica a un script dentro de un ``<iframe>`` tratando de acceder a su ventana
  128. principal.
  129. La comunicación entre dominios se puede lograr con ``Window.postMessage``.
  130. .. code-block:: html
  131. <script>
  132. var iframe = window.getElementsByTagName("iframe")[0];
  133. alert( "Titulo Frame :" + iframe.contentWindow.title);
  134. </script>
  135. <iframe src="pagina.html" width="300" height="300">
  136. <p>Tu navegador no soporta iframe.</p>
  137. </iframe>
  138. Como elementos del ``<iframe>``, dentro del objeto ``Window.frames`` se comportan como una
  139. pseudo-array.
  140. El elemento ``<iframe>`` puede usarse con los siguientes atributos:
  141. - ``height``. Indica la altura del ``<iframe>``
  142. - ``width``. Indica el ancho del ``<iframe>``
  143. - ``src``. Indica la dirección de una página que debe contener el contexto de navegación anidada.
  144. - ``srcdoc``. Indica el contenido de la página que debe contener el contexto
  145. de navegación anidada. El valor del atributo es el origen de un documento ``iframe srcdoc``.
  146. Si está presente, debe tener un valor utilizando la sintaxis HTML que consiste
  147. en los siguientes componentes sintácticos.
  148. El siguiente ejemplo utiliza el atributo ``srcdoc`` junto con los atributos de ``sandbox``
  149. que se describen a continuación para proporcionar a los usuarios que admiten esta
  150. función una capa adicional de protección contra la inyección de guiones en los
  151. comentarios del blog:
  152. .. code-block:: html
  153. <article>
  154. <h1>Ya tengo mi propia revista!</h1>
  155. <p>Despues de mucho esfuerzo,Finalmente he publicado mi articulo,
  156. Estoy muy feliz por ello!</p>
  157. <footer>
  158. <p>Escrito hace<a href="/users/cap">cap</a>, 1 hora.
  159. </footer>
  160. <article>
  161. <footer> Hace 30 minutos, <a href="/users/ch">ch</a> escribió: </footer>
  162. <iframe sandbox srcdoc="<p>¿ Has cogido la imagen de fondo ?"></iframe>
  163. </article>
  164. <article>
  165. <footer> Hace 9 minutos, <a href="/users/cap">cap</a> escribió: </footer>
  166. <iframe sandbox srcdoc="<p>Si , tu puedes verlo <a href=&quot;/gallery?mode=cover&amp;amp;page=1&quot;>dentro de la galeria</a>."></iframe>
  167. </article>
  168. <article>
  169. <footer> Hace 5 minutos, <a href="/users/ch">ch</a> escribió: </footer>
  170. <iframe sandbox srcdoc="<p>Si realmente está,
  171. <p>debes de avisarme en la proxima revisión."></iframe>
  172. </article>
  173. - ``name``. Un nombre para el contexto de exploración incrustado ``<iframe>``. Esto se puede
  174. usar como el valor del atributo de destino de un elemento ``<a>`` o ``<form>``, o el
  175. atributo ``formtarget`` de un elemento ``<input>`` o ``<button>``.
  176. - ``sandbox``. Si se especifica como una cadena vacía, este atributo permite restricciones
  177. adicionales en el contenido, que pueden aparecer en el ``<iframe>`` al que se envía los datos.
  178. El valor del atributo puede ser una lista separada por espacios de palabras clave que
  179. determinan las restricciones que se van a usar.
  180. .. code-block:: html
  181. <iframe title="Maps" sandbox="allow-same-origin allow-forms allow-scripts"
  182. src="https://maps.example.com/embedded.html"></iframe>
  183. En este ejemplo, se incrusta un gadget de otro sitio web. El gadget tiene scripts y
  184. formularios habilitados, y se levantan las restricciones del sandbox de origen,
  185. permite que el gadget se comunique con su servidor de origen. Sin embargo,
  186. el atributo ``sandbox`` sigue siendo útil, ya que deshabilita los complementos
  187. y ventanas emergentes, reduciendo así el riesgo de estar expuesto
  188. a programas maliciosos.
  189. Las palabras clave válidas son:
  190. - ``allow-forms`` Permite que el contexto de exploración incrustado envíe formularios.
  191. Si no se utiliza esta palabra clave, esta operación no está permitida.
  192. - ``allow-same-origin``. Permite que el contenido sea tratado como si procediera de su origen.
  193. Si no se utiliza esta palabra clave, se considera que el contenido incrustado es de origen único.
  194. - ``allow-top-navigation``. Permite que el contexto de exploración incrustado navegue
  195. (cargue) el contenido al contexto de navegación de nivel superior. Si
  196. no se utiliza esta palabra clave, esta operación no está permitida.
  197. - ``allow-scripts``: Permite que el contexto de exploración incrustado
  198. ejecute secuencias de comandos (pero no cree ventanas emergentes). Si no se
  199. utiliza esta palabra clave, esta operación no está permitida.
  200. - ``allowfullscreen``: Atributo booleano. Cuando se especifica, indica que los objetos ``document``
  201. en el contexto de exploración del elemento ``<iframe>`` deben poderse utilizar
  202. ``requestFullscreen()`` (si no está bloqueado por otras razones, por ejemplo,
  203. existe otro ``<iframe>`` ancestral sin este atributo).
  204. .. code-block:: html
  205. <article>
  206. <header>
  207. <p><img src="/usericons/1627591962735"> <b>Pedro Picapiedra</b></p>
  208. <p><a href="/posts/3095182851" rel=bookmark>12:44</a> — <a href="#acl-3095182851">Mensaje privado</a></p>
  209. </header>
  210. <main>
  211. <p>Mira mi nuevo troncomovil!</p>
  212. <iframe title="Video" src="https://video.example.com/embed?id=92469812" allowfullscreen></iframe>
  213. </main>
  214. </article>
  215. En el ejemplo anterior, un ``<iframe>`` se utiliza para incrustar un vídeo desde un sitio web de vídeos.
  216. El atributo ``allowfullscreen`` es necesario para permitir que el reproductor
  217. muestre su pantalla completa de vídeo.
  218. El elemento ``embed``
  219. =====================
  220. Proporciona un punto de integración para una aplicación externa (**normalmente no HTML**)
  221. o un contenido interactivo, un *pluging*, etc..
  222. Puede usarse con los siguientes atributos:
  223. - ``src``. Indica la dirección del recurso que se está incrustando.
  224. - ``width``. La anchura del elemento en píxeles.
  225. - ``height``. La altura del elemento en píxeles.
  226. - ``type``. Si está presente, indica el tipo MIME por el cual se selecciona
  227. el complemento para instanciar. El valor debe ser un tipo MIME válido.
  228. Si el atributo ``type`` y el atributo ``src`` están presentes, el atributo ``type``
  229. debe especificar el mismo tipo que los metadatos explícitos **Content-Type**
  230. del recurso dado por el atributo ``src``.
  231. .. code-block:: html
  232. <embed src="catgame.swf" quality="high">
  233. El elemento ``object``
  234. ======================
  235. El elemento ``<object>`` representa un recurso externo, que puede tratarse
  236. como una imagen, un contexto de navegación anidado o un recurso que debe manejar un complemento.
  237. Puede utilizarse con los siguientes atributos:
  238. - ``data``. Especifica la dirección del recurso.
  239. - ``type``. Si está presente, especifica el tipo del recurso, el atributo
  240. debe ser un tipo **MIME** válido.
  241. - ``form``. Elemento de formulario, si existe, estará asociado al elemento ``<objeto>``
  242. (propietario del formulario). El valor del atributo debe ser un ``id`` de un
  243. elemento ``<form>`` del mismo documento.
  244. - ``height``. La altura del recurso visualizado, en píxeles.
  245. - ``width``. El ancho del recurso de visualización, en píxeles.
  246. - ``name``. El nombre del contexto de exploración válido en HTML 5.
  247. - ``type``. El tipo de contenido del recurso especificado por los datos. Debe definirse al
  248. menos uno de los datos y del tipo.
  249. - ``typemustmatch``. Este atributo **booleano** indica si el tipo y el recurso de tipo de contenido
  250. real deben coincidir en el orden de éste cuando se vaya a utilizar.
  251. - ``usemap``. Una referencia al nombre **hash** de un elemento ``<map>``;
  252. Esto es **#** seguido por el valor de un nombre de un elemento ``<map>``.
  253. .. code-block:: html
  254. <!-- Embeber un video FLASH-->
  255. <object data="movie.swf"
  256. type="application/x-shockwave-flash"></object>
  257. <!-- Embeber una pelicula FLASH con parametros-->
  258. <object data="movie.swf" type="application/x-shockwave-flash">
  259. <param name="foo" value="bar">
  260. </object>
  261. .. code-block:: html
  262. <p>Mira mi vídeo:
  263. <object type="application/x-shockwave-flash">
  264. <param name=movie value="https://video.example.com/library/watch.swf">
  265. <param name=allowfullscreen value=true>
  266. <param name=flashvars value="https://video.example.com/vids/315981">
  267. <video controls src="https://video.example.com/vids/315981">
  268. <a href="https://video.example.com/vids/315981">Ver vídeo</a>.
  269. </video>
  270. </object>
  271. </p>
  272. El siguiente ejemplo muestra cómo se puede utilizar un complemento en HTML 5
  273. (en este caso, un complemento de Flash, para mostrar un archivo de vídeo).
  274. El respaldo **'fallback'** se proporciona para los usuarios que no tienen habilitado Flash,
  275. en este caso usando el elemento ``<video>`` para mostrar el vídeo para aquellos que
  276. usan agentes de usuario que soportan vídeo y proporcionar un enlace
  277. al vídeo para aquellos que no tienen Flash ni vídeo en el navegador
  278. El elemento ``param``
  279. =====================
  280. El elemento ``<param>`` define parámetros para complementos invocados por
  281. elementos de tipo ``<object>``. No representa nada por sí solo.
  282. Puede usarse con los siguientes atributos:
  283. - ``name``. El nombre del parámetro.
  284. - ``value``. El valor del parámetro
  285. .. code-block:: html
  286. <!DOCTYPE HTML>
  287. <html lang="en">
  288. <head>
  289. <title>Tetera en O3D </title>
  290. </head>
  291. <body>
  292. <p>
  293. <object type="application/vnd.o3d.auto">
  294. <param name="o3d_features" value="FloatingPointTextures">
  295. <img src="o3d-teapot.png"
  296. title="Tetera en 3D desde Ilustraciones Utah utilizando O3D.."
  297. alt="Cuando O3D rinde la tetera de Utah, aparece como una tetera squat
  298. con un acabado metálico brillante en el que se reflejan los alrededores,
  299. con una leve sombra causada por la iluminación">
  300. <p>Para ver la tetera realmente renderizada por O3D en su computadora
  301. , descargue e instale <a href="https://code.google.com/apis/o3d/docs/gettingstarted.html#install">O3D plugin</a>.</p>
  302. </object>
  303. <script src="o3d-teapot.js"></script>
  304. </p>
  305. </body>
  306. </html>
  307. El elemento ``video``
  308. =====================
  309. El elemento ``<video>`` se utiliza para incrustar vídeos en un documento HTML.
  310. Aquí_ puedes encontrar la lista de formatos compatibles para los
  311. elementos ``<audio>`` y ``<video>``.
  312. Puede usarse con los siguientes atributos:
  313. - ``autoplay``. Un atributo booleano; si se especifica, el vídeo comenzará a reproducirse
  314. automáticamente tan pronto como sea posible, sin detenerse.
  315. - ``controls``. Si está presente este atributo, el navegador ofrecerá controles
  316. para permitir que el usuario controle la reproducción de vídeo, incluyendo
  317. volumen, búsqueda y pausar/reanudar reproducción.
  318. - ``height``. La altura del área de visualización del vídeo en píxeles.
  319. - ``loop``. Un atributo **booleano**; si se especifica, al alcanzar el final del vídeo,
  320. volverá a reproducirse automáticamente desde el principio.
  321. - ``preload``. El objetivo de este atributo es proporcionar una precarga del archivo de vídeo
  322. dentro de nuestro navegador antes de que se inicié la reproducción para que no se trabe
  323. durante su reproducción de este.
  324. Puede tener uno de los siguientes valores:
  325. - ``none``. El autor sugiere que el usuario no tendrá que
  326. consultar este vídeo, porque el servidor desea minimizar su tráfico;
  327. es decir, esta sugerencia indica que no se debe almacenar en caché este vídeo.
  328. - ``metadata``. Indica que solo carga los metadatos del vídeo (por ejemplo,
  329. longitud del vídeo).
  330. - ``auto``. Indica que el vídeo entero puede ser descargado, incluso
  331. si no se espera que el usuario vaya a usarlo.
  332. - ``cadena vacía``. Sinónimo del valor **auto**.
  333. - ``poster``. Una imagen pretederminada mediante una URL o una imagen añadida
  334. que se muestra antes de reproducir el vídeo.
  335. - ``src``. La URL del vídeo que se va a insertar,es opcional; podrás optar, en su lugar,
  336. por el elemento ``<source>`` dentro del bloque de vídeo para especificar el
  337. vídeo que se va a incrustar.
  338. .. code-block:: html
  339. <video src="video.webm" autoplay controls></video>
  340. - ``width``. La anchura del área de visualización del vídeo en píxeles.
  341. Este ejemplo muestra un mensaje cuando el vídeo no se puede reproducir
  342. correctamente:
  343. .. code-block:: html
  344. <video src="videofile.ogg" autoplay poster="posterimage.jpg">
  345. Tu navegador no admite el elemento <code>vídeo</code>.
  346. </video>
  347. El elemento ``audio``
  348. =====================
  349. Representa un sonido o un flujo de audio.
  350. Se puede proporcionar contenido dentro del elemento ``<audio>`` para los navegadores
  351. que no pueden reproducir audio.
  352. Se puede utilizar con los siguientes atributos:
  353. - ``autoplay``. Un atributo booleano; si se especifica incluso aunque el valor sea **false**,
  354. el sonido comenzará a reproducirse automáticamente en cuanto sea posible,
  355. sin detenerse para terminar de cargar los datos.
  356. - ``controls``. Si está presente este atributo, el navegador ofrecerá controles
  357. para permitir que el usuario controle la reproducción de audio, incluyendo
  358. volumen, búsqueda y pausar/reanudar reproducción.
  359. - ``preload``. El objetivo de este atributo es proporcionar una pequeña precarga
  360. del contenido audio que se almacena en el buffer del navegador
  361. - ``none``. Se utiliza cuando el autor del sitio web considera que el usuario no
  362. tendrá que consultar ese recurso de audio posteriormente y asi minimizar el
  363. tráfico del servidor, indica que no se debe almacenar en caché este audio;
  364. - ``metadata``. Sugiere que aunque el autor piense que el usuario no tendrá que
  365. consultar ese audio, es razonable capturar los metadatos (p. ej. longitud);
  366. - ``auto``. Indica que si es necesario, se puede descargar el vídeo completo, incluso
  367. aunque el usuario no vaya a usarlo;
  368. - *Una cadena vacía*. Realiza la misma función que el valor **auto**.
  369. - ``loop``. Un atributo **booleano**; si se especifica, al alcanzar el final del audio,
  370. este vuelve a reproducirse desde el principio.
  371. .. code-block:: html
  372. <audio src="http://developer.mozilla.org/@api/deki/files/2926/=AudioTest_(1).ogg"
  373. autoplay>
  374. Tu navegador no soporta el elemento <code>audio</code>.
  375. </audio>
  376. El elemento ``source``
  377. ======================
  378. El uso del elemento ``<source>`` permite a los autores de un sitio web especificar múltiples
  379. recursos alternativos de tipo multimedia. Por sí solo no representa nada.
  380. Puede usarse con los siguientes atributos:
  381. - ``src``. Indica la dirección del recurso multimedia a reproducir. Este atributo debe
  382. estar presente.
  383. - ``type``. Este atributo indica el tipo del recurso multimedia,
  384. para ayudar al navegador a determinar si puede reproducir este recurso multimedia
  385. antes de buscarlo. Si se especifica, su valor debe ser un tipo MIME válido.
  386. .. code-block:: html
  387. <video controls>
  388. <source src="foo.ogg" type="video/ogg"> <!-- Soportado por Firefox -->
  389. <source src="foo.mov" type="video/quicktime"> <!-- Soportado por Safari -->
  390. Lo siento, tu navegador no soporta vídeos de HTML 5.
  391. </video>
  392. Este ejemplo muestra cómo ofrecer un vídeo en formato **Ogg** para los usuarios cuyos
  393. navegadores son compatibles con formato **Ogg** y un vídeo en formato **QuickTime** para
  394. los usuarios cuyos navegadores son compatibles con él. Si el elemento audio o
  395. vídeo no es compatible con el navegador, se muestra un aviso en su lugar.
  396. Si el navegador es compatible con el elemento, pero no es compatible con
  397. cualquiera de los formatos especificados, se produce un evento de tipo "error" y los
  398. controles multimedia (si están activados) indicarán el error.
  399. .. code-block:: html
  400. <script>
  401. function fallback(video) {
  402. // reemplaza <video> dentro del contenido
  403. while (video.hasChildNodes()) {
  404. if (video.firstChild instanceof HTMLSourceElement)
  405. video.removeChild(video.firstChild);
  406. else
  407. video.parentNode.insertBefore(video.firstChild, video);
  408. }
  409. video.parentNode.removeChild(video);
  410. }
  411. </script>
  412. <video controls autoplay>
  413. <source src='video.mp4' type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'>
  414. <source src='video.ogv' type='video/ogg; codecs="theora, vorbis"'
  415. onerror="fallback(parentNode)">
  416. </video>
  417. Si el autor del sitio web no está seguro de si los navegadores podrán procesar los
  418. recursos multimedia proporcionados, podrá usar un escuchador de eventos de tipo "error"
  419. en el último elemento de origen y activar el comportamiento de **fallback**.
  420. El elemento ``track``
  421. =====================
  422. Permite a los autores especificar recursos explícitos de texto externo
  423. para elementos multimedia. No representa nada por sí solo.
  424. Puede utilizarse con los siguientes atributos:
  425. - ``default``. Este atributo indica que ``<track>`` debe estar habilitado a
  426. menos que las preferencias del usuario indiquen que otro ``<track>`` es más
  427. apropiado. Esto sólo puede utilizarse en un elemento ``<track>`` para los elementos
  428. multimedia.
  429. - ``kind``. Especifica el tipo de texto que puede tener el elemento ``<track>``. Puede tener
  430. los siguientes valores:
  431. - ``subtitles``. Transcripción o traducción del diálogo, adecuada para cuando el sonido está
  432. disponible pero no se entiende (por ejemplo, porque el usuario no entiende
  433. el idioma de la pista de audio del recurso multimedia). Sobrepuesto en el vídeo.
  434. - ``captions``. Transcripción o traducción del diálogo, efectos de sonido, pistas musicales
  435. relevantes y otra información de audio relevante, adecuada para cuando el
  436. sonido no está disponible o no es claramente audible. Por ejemplo, porque
  437. está silenciado, ahogado por el ruido ambiental o porque la persona es sorda.
  438. - ``description``. Descripciones textuales del componente de vídeo del recurso de medios, destinado
  439. a la síntesis de audio cuando el componente visual está oscurecido, no disponible
  440. o no utilizable, por ejemplo, porque el usuario está interactuando con la
  441. aplicación sin pantalla durante la conducción o porque el usuario es invidente).
  442. Sintetizado como audio.
  443. - ``chapters``. Títulos de capítulos, destinados a ser utilizados por los navegadores
  444. por el recurso multimedia. Se muestra como una lista interactiva (potencialmente anidada)
  445. en la interfaz del navegador.
  446. - ``metadata``. Pistas destinadas para su uso desde el script. No se muestra en el agente de usuario.
  447. - ``label``. Título legible para el ``<track>`` que utiliza el navegador
  448. para listar los ``<track>`` de textos disponibles.
  449. - ``src``. URL o dirección del recurso. Este atributo debe de ser indicado siempre.
  450. - ``srclang``. Idioma de los datos del texto del ``<track>``.
  451. .. code-block:: html
  452. <video controls poster="/images/sample.gif">
  453. <source src="sample.mp4" type="video/mp4">
  454. <source src="sample.ogv" type="video/ogv">
  455. <track kind="captions" src="sampleCaptions.vtt" srclang="en">
  456. <track kind="descriptions"
  457. src="sampleDescriptions.vtt" srclang="en">
  458. <track kind="chapters" src="sampleChapters.vtt" srclang="en">
  459. <track kind="subtitles" src="sampleSubtitles_de.vtt" srclang="de">
  460. <track kind="subtitles" src="sampleSubtitles_en.vtt" srclang="en">
  461. <track kind="subtitles" src="sampleSubtitles_ja.vtt" srclang="ja">
  462. <track kind="subtitles" src="sampleSubtitles_oz.vtt" srclang="oz">
  463. <track kind="metadata" src="keyStage1.vtt" srclang="en"
  464. label="Key Stage 1">
  465. <track kind="metadata" src="keyStage2.vtt" srclang="en"
  466. label="Key Stage 2">
  467. <track kind="metadata" src="keyStage3.vtt" srclang="en"
  468. label="Key Stage 3">
  469. <!-- Fallback -->
  470. Tu navegador no puede reproducir el vídeo. Actualízalo, por favor.
  471. </video>
  472. El elemento ``map``
  473. ===================
  474. El elemento ``<map>``, junto con un elemento ``<img>`` y cualquier descendiente
  475. de elemento ``<area>``, define el mapa de imagen.
  476. Se utiliza con el atributo ``name``. Este le da al mapa un nombre para que
  477. pueda ser referenciado. El atributo debe estar presente y debe tener un
  478. valor no vacío sin caracteres de espacio.
  479. .. code-block:: html
  480. <!DOCTYPE html>
  481. <html>
  482. <head>
  483. <title>Ejemplo del elemento &lt;map&gt;</title>
  484. </head>
  485. <body>
  486. <img src ="http://www.htmlcodes.ws/images/examples/australia-nz-map.gif"
  487. width="200" height="142"
  488. alt="Map of Australia and New Zealand"
  489. usemap ="#aus-nz">
  490. <map name="aus-nz">
  491. <area shape ="poly" coords ="3,47,45,12,105,7,140,60,120,125,12,90"
  492. href ="https://es.wikipedia.org/wiki/Australia" target="_blank"
  493. alt="Australia">
  494. <area shape ="poly" coords ="180,85,200,98,167,142,157,138"
  495. href ="https://es.wikipedia.org/wiki/Nueva_Zelanda" target="_blank"
  496. alt="New Zealand">
  497. </map>
  498. </body>
  499. </html>
  500. El elemento ``area``
  501. ====================
  502. Sirve para crear las distintas secciones en las que se puede dividir un mapas
  503. de imágenes en el cliente.
  504. Representa un hipervínculo con algún texto y un área correspondiente en un mapa
  505. de imagen, o un área muerta en un mapa de imagen.
  506. El elemento ``<area>`` debe tener un elemento ``<map>`` o ``<template>``
  507. como padre.
  508. Los atributos ``shape`` y ``coords`` especifican el area.
  509. Puede ser utilizado con los siguientes atributos:
  510. - ``alt``. Texto que se muestra cuando las imágenes no pueden ser cargadas.
  511. - ``coords``. Coordenadas para las formas que se crean en un mapa de imagen.
  512. - ``download``. Si está presente, el navegador descarga el elemento en vez
  513. de mostrarlo.
  514. - ``href``. La dirección del recurso.
  515. - ``hreflang``. El idioma del recurso enlazado.
  516. - ``rel``. La relación del documento actual con el recurso enlazado.
  517. - ``shape``. Tipo de forma a ser creado en un mapa de imagen. Puede tener los
  518. siguientes valores:
  519. - ``circle``. Forma de círculo.
  520. - ``default``. Forma predeterminada (por defecto rectángulo).
  521. - ``poly``. Forma de polígolo.
  522. - ``rect``. Forma de rectángulo.
  523. - ``target``. El contexto de navegación.
  524. - ``type``. El tipo de recurso referenciado.
  525. .. image:: imagenes/sample-usemap.png
  526. .. code-block:: html
  527. <p>
  528. Por favor, selecciona una forma:
  529. <img src="shapes.png" usemap="#shapes"
  530. alt="Four shapes are available: a red hollow box, a green circle, a blue triangle, and a yellow four-pointed star.">
  531. <map name="shapes">
  532. <area shape=rect coords="50,50,100,100"> <!-- El agujero de la caja roja -->
  533. <area shape=rect coords="25,25,125,125" href="red.html" alt="Caja roja.">
  534. <area shape=circle coords="200,75,50" href="green.html" alt="Círculo verde.">
  535. <area shape=poly coords="325,25,262,125,388,125" href="blue.html" alt="Triángulo azul.">
  536. <area shape=poly coords="450,25,435,60,400,75,435,90,450,125,465,90,500,75,465,60"
  537. href="yellow.html" alt="Estrella amarilla.">
  538. </map>
  539. </p>
  540. MathML
  541. ======
  542. MathML es una especificación para representar contenido matemático y
  543. científico que se puede usar en páginas web. La especificación oficial
  544. se encuentra en la siguiente dirección: https://www.w3.org/Math/.
  545. El elemento ``<math>`` se utiliza para hacer uso de esta tecnología.
  546. El siguiente ejemplo muestra cómo se representa en HTML la fórmula del
  547. teorema de Pitágoras.
  548. .. code-block:: html
  549. <!DOCTYPE html>
  550. <html>
  551. <head>
  552. <title>Fórmula del teorema de Pitágoras</title>
  553. </head>
  554. <body>
  555. <math>
  556. <mrow>
  557. <mrow>
  558. <msup>
  559. <mi>a</mi>
  560. <mn>2</mn>
  561. </msup>
  562. <mo>+</mo>
  563. <msup>
  564. <mi>b</mi>
  565. <mn>2</mn>
  566. </msup>
  567. </mrow>
  568. <mo>=</mo>
  569. <msup>
  570. <mi>c</mi>
  571. <mn>2</mn>
  572. </msup>
  573. </mrow>
  574. </math>
  575. </body>
  576. </html>
  577. SVG
  578. ===
  579. SVG (*Scalable Vector Graphics*) es un formato de gráficos vectoriales
  580. bidimensionales, tanto estáticos como animados, en formato XML, cuya
  581. especificación es un estándar abierto desarrollado por el W3C desde
  582. el año 1999. La especificación oficial se encuentra en https://www.w3.org/TR/SVG/.
  583. El elemento ``<svg>`` se utiliza para hacer uso de esta tecnología.
  584. A continuación, se muestra un ejemplo que dibuja un círculo.
  585. .. code-block:: html
  586. <!DOCTYPE HTML>
  587. <html lang="es">
  588. <head>
  589. <meta charset="UTF-8">
  590. <title>Círculo</title>
  591. </head>
  592. <body>
  593. <svg width="100" height="100">
  594. <circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" />
  595. </svg>
  596. </body>
  597. </html>
  598. .. _Aquí: https://developer.mozilla.org/en-US/docs/Web/HTML/Supported_media_formats